Macros active in error messages

emre brookes brookes@uthscsa.edu
Sun Nov 22 15:34:15 GMT 2020


I was compiling a project and received an odd message that took some 
digging.
e.g.

file.cpp:#:#: error: expected unqualified-id before numeric constant
# | if ( inttype == MyClass::ERROR )
                              ^~~~~
where MyClass::ERROR is an enum.

Took some digging to find out ERROR was somewhere #define'd and the cure 
was to #undef ERROR
Could never find out *where* it was defined - recursively searched all 
include files of the project and /usr/include etc.
Regardless, it would have been very helpful to know in the error 
messages that a #define was active or to have the ERROR replaced by the 
macro substitution.

Is it possible to get any macro expansion information in error messages?
I didn't see a compiler flag for to get this information, but I might 
have missed it.
If not, it would be a nice feature to have.

Cheers,
Emre.



More information about the Gcc-help mailing list