// RUN: %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck %s #define M1(x) x #define M2 1; void foo() { M1( M2); // CHECK: {{.*}}:6:{{[0-9]+}}: warning: expression result unused // CHECK: {{.*}}:7:{{[0-9]+}}: note: instantiated from: // CHECK: {{.*}}:4:{{[0-9]+}}: note: instantiated from: } #define A 1 #define B A #define C B void bar() { C; // CHECK: {{.*}}:17:{{[0-9]+}}: warning: expression result unused // CHECK: {{.*}}:15:{{[0-9]+}}: note: instantiated from: // CHECK: {{.*}}:14:{{[0-9]+}}: note: instantiated from: // CHECK: {{.*}}:13:{{[0-9]+}}: note: instantiated from: } // rdar://7597492 #define sprintf(str, A, B) \ __builtin___sprintf_chk (str, 0, 42, A, B) void baz(char *Msg) { sprintf(Msg, " sizeof FoooLib : =%3u\n", 12LL); }