Is the following well defined and allowed?

Steven Schveighoffer schveiguy at yahoo.com
Fri Mar 2 15:05:03 UTC 2018


On 3/2/18 10:00 AM, Timon Gehr wrote:
> On 02.03.2018 15:39, Steven Schveighoffer wrote:
>>
>>
>>> In this interpetation, -noboundscheck switches DMD to a different 
>>> dialect of D. In that dialect, out-of-bounds accesses (and 
>>> overlapping copies, apparently) always have UB, in both @system and 
>>> @safe code. That defeats the purpose of @safe. Which is why I don't 
>>> really care for that dialect.
>>
>> I agree, I think we should remove the option to disable bounds checks 
>> on @safe code, in any way. It's too dangerous. If you want performance 
>> that comes without bounds checks, use a trusted escape, or write 
>> system code.
> 
> I.e., the -release flag should not remove assertions in @safe code, or 
> at the very least it should not turn them into sources of UB.

-release flag already operates this way. It's the -noboundscheck or 
-boundscheck=off that causes problems.

-Steve


More information about the Digitalmars-d mailing list