DIP 1006 - Preliminary Review Round 1

Paolo Invernizzi paolo.invernizzi at gmail.com
Wed Mar 7 14:01:31 UTC 2018


On Wednesday, 7 March 2018 at 13:32:37 UTC, ag0aep6g wrote:
> On Wednesday, 7 March 2018 at 08:58:50 UTC, Paolo Invernizzi 
> wrote:
>> Just to understand, otherwise, if the assert is removed and it 
>> does not hold, you are in UB,
>
> You're not. Just let the compiler treat the code as if the 
> asserts weren't there. If the resulting code has UB, it won't 
> compile, because @safe code is statically checked to not have 
> UB.
>
>> so the request is to guarantee memory safety in a UB state, 
>> right?
>
> I don't think anyone is asking for that. The request is for no 
> UB in @safe code.

Are we asking to statically check things like:

Assign Expressions [1]
Undefined Behavior:
   if the lvalue and rvalue have partially overlapping storage
   if the lvalue and rvalue's storage overlaps exactly but the 
types are different

Is that doable, in practise?

[1] https://dlang.org/spec/expression.html#assign_expressions

/Paolo




More information about the Digitalmars-d mailing list