https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64803
Bug ID: 64803 Summary: __LINE__ inside macro is not constant Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: alserkli at inbox dot ru The following code (simplified from EXPECT_DEATH(VariantValue(VariantMatcher::SingleMatcher(varDecl())) in llvm/tools/clang/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp:149) #define C(a, b) a ## b #define L(x) C(L, x) #define M(a) goto L(__LINE__); __LINE__; L(__LINE__): M(a ); produces (gcc -E; 5.0.0 20150126) goto L5; 5; L4: In gcc-4.7 the result was (after '#' lines removal) goto L5 ; 5 ; L5 : ;