GCC quietly accepts the following:
#define A a
#define B a
#if #A == #B
#endif
but it should not, because '#A == #B' is not an integer constant expression,
see C99 section 6.10.1
paragraph 1. GCC does properly diagnose
#if "a" == "a"
--
Summary: #if #A == #B should have a diagnostic
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Keywords: accepts-invalid
Severity: normal
Priority: P3
Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: geoffk at gcc dot gnu dot org
CC: dje at gcc dot gnu dot org,gcc-bugs at gcc dot gnu dot
org
GCC build triplet: *
GCC host triplet: *-*-*
GCC target triplet: *
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22168