Why do immutable variables need reference counting?
wjoe
invalid at example.com
Sun Apr 17 13:06:36 UTC 2022
On Thursday, 14 April 2022 at 12:10:04 UTC, ag0aep6g wrote:
> On 14.04.22 13:42, wjoe wrote:
>> Undefined behavior yes, but regardless the example proves it
>> can be done in @system code.
>> A few versions ago, possibly due to a bug or regression, the
>> compiler didn't complain in @safe code either.
>>
>> Of course you are correct academically. However, since it's
>> possible, I'd wager my last hat that code like this is out in
>> the wild.
>
> No, it cannot be done in @system code. The example only proves
> that you can write nonsense code that has no defined meaning.
>
> Note that the nonsense you wrote behaves as you describe only
> in Windows. Elsewhere, you get a segfault.
>
> But it doesn't matter how the executable actually behaves. You
> cannot cite the result of undefined behavior when arguing
> language semantics.
Well I'm not using Windows so I wouldn't know but I compiled an
ran that program on Linux and it didn't segfault. If it had I
wouldn't have included that part in my reply.
On the matter of undefined behavior. Technically a program is in
undefined behavior land after throwing an error, thus every
unittest that continues after assertThrown is therefore nonsense
code, is it not ?
More information about the Digitalmars-d-learn
mailing list