The -dM option is documented to provide a complete list of all defined macros,
including all predefined macros, however the list is incomplete. In particular,
the following will not list __STDC__ even though it is defined:
touch test.h; gcc -dM test.h
If you modify test.h to include:
#ifdef __STDC__
#error __STDC__ is defined
#endif
The compilation will result in an error
--
Summary: -dM does not list all defined macros (in particular,
__STDC__)
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: shaun4477 at gmail dot com
GCC build triplet: ia64-hp-hpux11.23
GCC host triplet: ia64-hp-hpux11.23
GCC target triplet: ia64-hp-hpux11.23
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25717