On 17 Apr 2010, at 21:47, Martin wrote: > Maybe it's my setting, but I get other warnings, hints even.. > > var > p: Pointer; > e: TEnumType; > begin > e:= TEnumType(p); > > didn't give me any warning (2.4.0, 2.5.1), but it fails (so I am told) on > 64bit, [ Illegal type conversion: "^untyped" to "<enumeration type>"] > > If untyped^ to enum is forbiden, then why does it even *work* on 32 bit? (not > to speak, of not giving a warning?)
It works in 32 bit because the default size of enumeration types is 4 bytes (also on 64 bit platforms, to avoid problems with reading binary files containing enumeration types), and explicitly type casting one type to another type of the same size is always allowed. Jonas_______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
