Menu

#313 stdhdr.h tramples on host compiler's name space

None
open
nobody
None
1
2018-10-22
2018-10-22
No

There's several things in "stdhdr.h" that code like this really should not be doing. First and foremost, you should never #define anything with two leading underscores, because they're officially reseverded to the implementation by the ISO C Standard. I.e. names like __OFF_FMTu__ and __WORDSIZE are off-limits. If you overwrite them, you earn undefined behaviour.

I strongly suspect that the remaining problems with -Wformat warnings in the source are caused by this.

So please consider dropping all these forbidden names from "stdhdr.h". They're not really needed anyway: all the macros actually used by the source are clean-named copies of the forbidden ones, anyway, so the detour through forbidden country doesn't gain you anything but extra problems. You could just define them with their final names directly.

A prototype patch is attached. For me on Cygwin64, it does appear to fix the OFF_FMTu warning of bug #291

1 Attachments

Discussion

Anonymous
Anonymous

Add attachments
Cancel