Finally, as far as I understand Cfront was a proper C++ compiler that simply targeted C instead of ASM (like many compilers for other languages do ), not some sort of C preprocessor (Cfront was initially bootstrapped with a c-with-classes preprocessor though).
To destruct -- to collect.
To collect -- perchance to tenure: ay there's the rub!
For in that collection of destruction what cycles may come
When we have shuffled off this mortal core,
Must give us callbacks.
sgl_baseof uses offsetof with a valid struct type and a valid field name, so where is the UB? Unless you feed it an invalid pointer, but then all bets are off.
If an implementation provides offsetof and it doesn't work, that implementation would go out of fashion in a heart beat.
Where is the practical use of this information?
How is this even an argument?