[fpc-devel] Dangerous optimization in CASE..OF
Florian Klämpfl
florian at freepascal.org
Sun Jul 2 20:18:47 CEST 2017
Am 02.07.2017 um 20:12 schrieb Martok:
>> They are:
>> http://docwiki.embarcadero.com/Libraries/XE5/en/System.Boolean
> That prototype is a recent invention, it wasn't there in older versions. Also
*sigh* This is the case since pascal was iso standarized.
> the text sounds quite different somewhere else:
> http://docwiki.embarcadero.com/RADStudio/XE5/en/Simple_Types#Boolean_Types
>
>> Yes. What I wanted to point out: also delphi does optimizations on enums which fails if one feeds
>> invalid values.
> Okay, if you want believe that Booleans are enums:
I do not believe, I know.
>
> b:=boolean(42);
> if not b then
> writeln('falsy')
> else
> writeln('truthy');
>
> Prints truthy. Doesn't crash.
Yes, undefined behavior.
More information about the fpc-devel
mailing list