Chandler Carruth | 60be4de | 2011-03-09 10:56:54 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck %s |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 2 | |
| 3 | #define M1(x) x |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 4 | #define M2 1; |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 5 | void foo() { |
Chandler Carruth | 60be4de | 2011-03-09 10:56:54 +0000 | [diff] [blame] | 6 | M1( |
| 7 | M2); |
Chris Lattner | 8306831 | 2011-06-28 05:11:33 +0000 | [diff] [blame] | 8 | // CHECK: :6:3: warning: expression result unused |
| 9 | // CHECK: :7:5: note: instantiated from: |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 10 | } |
| 11 | |
Chris Lattner | 8306831 | 2011-06-28 05:11:33 +0000 | [diff] [blame] | 12 | |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 13 | #define A 1 |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 14 | #define B A |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 15 | #define C B |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 16 | void bar() { |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 17 | C; |
Chris Lattner | 8306831 | 2011-06-28 05:11:33 +0000 | [diff] [blame] | 18 | // CHECK: :17:3: warning: expression result unused |
| 19 | // CHECK: :15:11: note: instantiated from: |
| 20 | // CHECK: :14:11: note: instantiated from: |
| 21 | // CHECK: :13:11: note: instantiated from: |
Chris Lattner | 037fb7f | 2009-05-05 22:03:18 +0000 | [diff] [blame] | 22 | } |
| 23 | |
Chris Lattner | a5c6c58 | 2010-02-12 19:31:35 +0000 | [diff] [blame] | 24 | |
| 25 | // rdar://7597492 |
| 26 | #define sprintf(str, A, B) \ |
| 27 | __builtin___sprintf_chk (str, 0, 42, A, B) |
| 28 | |
| 29 | void baz(char *Msg) { |
| 30 | sprintf(Msg, " sizeof FoooLib : =%3u\n", 12LL); |
| 31 | } |
| 32 | |
Chris Lattner | 8306831 | 2011-06-28 05:11:33 +0000 | [diff] [blame] | 33 | |
| 34 | |
| 35 | // PR9279 - Notes shouldn't print 'instantiated from' notes recursively. |
| 36 | #define N1(x) int arr[x] |
| 37 | #define N2(x) N1(x) |
| 38 | #define N3(x) N2(x) |
| 39 | N3(-1); |
| 40 | |
| 41 | // CHECK: :39:1: error: 'arr' declared as an array with a negative size |
| 42 | // CHECK: :38:15: note: instantiated from: |
| 43 | // CHECK: :37:15: note: instantiated from: |
| 44 | // CHECK: :39:1: note: instantiated from: |