Another compatibility issue is the original one from this thread that it seems we all forgot about by the end of the thread (myself included)
{$if TARGET_RT_BIG_ENDIAN}
type
wide = record
case boolean of
false:
(hi: SInt32;
lo: UInt32);
true:
(int: SInt64)
end;
{$endif}
It seems that case statements are not allowed in records, even in a false ifdef. I understand it must be syntactically correct throughout, but it would be fantastic for compatibility to at least allow FPC-correct syntax in undefined blocks as Marc mentioned in that thread.