checkedint call removal
bearophile via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jul 30 15:40:49 PDT 2014
Walter Bright:
>> void f(ubyte[] a) @safe { assert(a.length>99); a[88] =
>> a[77]; }
>
> The compiler will insert array bounds checking for you.
But if your "assert" is the same as an assume(), then the
optimizer should remove bounds checks (otherwise it's a lousy
implementation of assume()) and leave no tests whatsoever inside
the function f. So now you now have a safe function that is
unsafe.
I think you are still missing the essential difference between
assume and assert.
Bye,
bearophile
More information about the Digitalmars-d
mailing list