51 lines · c
1// RUN: not %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck %s2 3#define a b4#define b c5#define c(x) d(x)6#define d(x) x*17 8#define e f9#define f g10#define g(x) h(x)11#define h(x) x12 13void PR16799(void) {14 const char str[] = "string";15 a(str);16 // CHECK: :15:3: error: invalid operands to binary expression17 // CHECK: ('const char[7]' and 'int')18 // CHECK: a(str);19 // CHECK: ^~~~~~20 // CHECK: :3:11: note: expanded from macro 'a'21 // CHECK: #define a b22 // CHECK: ^23 // CHECK: :4:11: note: expanded from macro 'b'24 // CHECK: #define b c25 // CHECK: ^26 // CHECK: :5:14: note: expanded from macro 'c'27 // CHECK: #define c(x) d(x)28 // CHECK: ^~~~29 // CHECK: :6:15: note: expanded from macro 'd'30 // CHECK: #define d(x) x*131 // CHECK: ~^~32 33 e(str);34 // CHECK: :33:5: warning: expression result unused35 // CHECK: e(str);36 // CHECK: ^~~37 // CHECK: :8:11: note: expanded from macro 'e'38 // CHECK: #define e f39 // CHECK: ^40 // CHECK: :9:11: note: expanded from macro 'f'41 // CHECK: #define f g42 // CHECK: ^43 // CHECK: :10:16: note: expanded from macro 'g'44 // CHECK: #define g(x) h(x)45 // CHECK: ^46 // CHECK: :11:14: note: expanded from macro 'h'47 // CHECK: #define h(x) x48 // CHECK: ^49}50// CHECK: 1 warning and 1 error generated.51