blob: b922f33af0014ed9d0c331567adc5977177d430d [file] [log] [blame]
Chandler Carruth60be4de2011-03-09 10:56:54 +00001// RUN: %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck %s
Chris Lattner037fb7f2009-05-05 22:03:18 +00002
3#define M1(x) x
Chris Lattner037fb7f2009-05-05 22:03:18 +00004#define M2 1;
Chris Lattner037fb7f2009-05-05 22:03:18 +00005void foo() {
Chandler Carruth60be4de2011-03-09 10:56:54 +00006 M1(
7 M2);
Chris Lattner83068312011-06-28 05:11:33 +00008 // CHECK: :6:3: warning: expression result unused
9 // CHECK: :7:5: note: instantiated from:
Chris Lattner037fb7f2009-05-05 22:03:18 +000010}
11
Chris Lattner83068312011-06-28 05:11:33 +000012
Chris Lattner037fb7f2009-05-05 22:03:18 +000013#define A 1
Chris Lattner037fb7f2009-05-05 22:03:18 +000014#define B A
Chris Lattner037fb7f2009-05-05 22:03:18 +000015#define C B
Chris Lattner037fb7f2009-05-05 22:03:18 +000016void bar() {
Chris Lattner037fb7f2009-05-05 22:03:18 +000017 C;
Chris Lattner83068312011-06-28 05:11:33 +000018 // 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 Lattner037fb7f2009-05-05 22:03:18 +000022}
23
Chris Lattnera5c6c582010-02-12 19:31:35 +000024
25// rdar://7597492
26#define sprintf(str, A, B) \
27__builtin___sprintf_chk (str, 0, 42, A, B)
28
29void baz(char *Msg) {
30 sprintf(Msg, " sizeof FoooLib : =%3u\n", 12LL);
31}
32
Chris Lattner83068312011-06-28 05:11:33 +000033
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)
39N3(-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: