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