67 lines · c
1// RUN: not %clang -fsyntax-only -fno-diagnostics-show-line-numbers -fmacro-backtrace-limit=0 %s 2>&1 | FileCheck %s2 3#define FOO 1+"hi" 4#define BAR FOO5#define BAZ BAR6#define QUZ BAZ7#define TAZ QUZ8#define ABA TAZ9#define BAB ABA10#define ZAZ BAB11#define WAZ ZAZ12#define DROOL WAZ13#define FOOL DROOL14 15FOOL;16 17// CHECK: :15:1: error: expected identifier or '('18// CHECK: FOOL19// CHECK: ^20// CHECK: :13:14: note: expanded from macro 'FOOL'21// CHECK: #define FOOL DROOL22// CHECK: ^23// CHECK: :12:15: note: expanded from macro 'DROOL'24// CHECK: #define DROOL WAZ25// CHECK: ^26// CHECK: :11:13: note: expanded from macro 'WAZ'27// CHECK: #define WAZ ZAZ28// CHECK: ^29// CHECK: :10:13: note: expanded from macro 'ZAZ'30// CHECK: #define ZAZ BAB31// CHECK: ^32// CHECK: :9:13: note: expanded from macro 'BAB'33// CHECK: #define BAB ABA34// CHECK: ^35// CHECK: :8:13: note: expanded from macro 'ABA'36// CHECK: #define ABA TAZ37// CHECK: ^38// CHECK: :7:13: note: expanded from macro 'TAZ'39// CHECK: #define TAZ QUZ40// CHECK: ^41// CHECK: :6:13: note: expanded from macro 'QUZ'42// CHECK: #define QUZ BAZ43// CHECK: ^44// CHECK: :5:13: note: expanded from macro 'BAZ'45// CHECK: #define BAZ BAR46// CHECK: ^47// CHECK: :4:13: note: expanded from macro 'BAR'48// CHECK: #define BAR FOO49// CHECK: ^50// CHECK: :3:13: note: expanded from macro 'FOO'51// CHECK: #define FOO 1+"hi" 52// CHECK: ^53 54#define ADD(a, b) a ## #b55ADD(L, foo)56// CHECK: error: expected identifier or '('57// CHECK: ADD(L, foo)58// CHECK: {{^\^}}59// CHECK: note: expanded from macro 'ADD'60// CHECK: #define ADD(a, b) a ## #b61// CHECK: {{^ \^}}62// CHECK: note: expanded from here63// CHECK: L"foo"64// CHECK: {{^\^}}65 66// CHECK: 2 errors generated.67