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 :   ;

Reply via email to