Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify -pedantic -fblocks %s |
Eli Friedman | 0976278 | 2008-08-20 22:07:34 +0000 | [diff] [blame] | 2 | |
Chris Lattner | 18914bc | 2008-12-12 06:19:11 +0000 | [diff] [blame] | 3 | // PR2241 |
Daniel Dunbar | dbb4f21 | 2009-04-15 21:35:27 +0000 | [diff] [blame] | 4 | float test2241[2] = { |
Chris Lattner | 18914bc | 2008-12-12 06:19:11 +0000 | [diff] [blame] | 5 | 1e, // expected-error {{exponent}} |
| 6 | 1ee0 // expected-error {{exponent}} |
| 7 | }; |
| 8 | |
| 9 | |
Eli Friedman | 0976278 | 2008-08-20 22:07:34 +0000 | [diff] [blame] | 10 | // Testcase derived from PR2692 |
Mike Stump | d1969d8 | 2009-07-22 00:43:08 +0000 | [diff] [blame] | 11 | static void f (char * (*g) (char **, int), char **p, ...) { |
| 12 | char *s; |
| 13 | va_list v; // expected-error {{identifier}} |
| 14 | s = g (p, __builtin_va_arg(v, int)); // expected-error {{identifier}} |
Eli Friedman | 0976278 | 2008-08-20 22:07:34 +0000 | [diff] [blame] | 15 | } |
| 16 | |
Chris Lattner | 90b93d6 | 2008-12-08 21:59:01 +0000 | [diff] [blame] | 17 | |
| 18 | // PR3172 |
Nico Weber | 883692e | 2012-01-17 01:04:27 +0000 | [diff] [blame] | 19 | } // expected-error {{extraneous closing brace ('}')}} |
Chris Lattner | 90b93d6 | 2008-12-08 21:59:01 +0000 | [diff] [blame] | 20 | |
| 21 | |
Chris Lattner | 18914bc | 2008-12-12 06:19:11 +0000 | [diff] [blame] | 22 | // rdar://6094870 |
Mike Stump | d1969d8 | 2009-07-22 00:43:08 +0000 | [diff] [blame] | 23 | void test(int a) { |
Chris Lattner | 18914bc | 2008-12-12 06:19:11 +0000 | [diff] [blame] | 24 | struct { int i; } x; |
| 25 | |
| 26 | if (x.hello) // expected-error {{no member named 'hello'}} |
| 27 | test(0); |
| 28 | else |
| 29 | ; |
| 30 | |
| 31 | if (x.hello == 0) // expected-error {{no member named 'hello'}} |
| 32 | test(0); |
| 33 | else |
| 34 | ; |
| 35 | |
| 36 | if ((x.hello == 0)) // expected-error {{no member named 'hello'}} |
| 37 | test(0); |
| 38 | else |
| 39 | ; |
Chris Lattner | bddc7e5 | 2012-04-28 16:24:20 +0000 | [diff] [blame] | 40 | |
| 41 | // PR12595 |
| 42 | if (x.i == 0)) // expected-error {{extraneous ')' after condition, expected a statement}} |
Chris Lattner | 18914bc | 2008-12-12 06:19:11 +0000 | [diff] [blame] | 43 | test(0); |
| 44 | else |
| 45 | ; |
| 46 | } |
| 47 | |
Chris Lattner | 0ba0dd6 | 2008-12-12 06:21:18 +0000 | [diff] [blame] | 48 | |
| 49 | |
| 50 | char (((( /* expected-note {{to match this '('}} */ |
| 51 | *X x ] )))); /* expected-error {{expected ')'}} */ |
| 52 | |
Richard Trieu | 2fe9b7f | 2011-12-15 00:38:15 +0000 | [diff] [blame] | 53 | ; // expected-warning {{extra ';' outside of a function}} |
Chris Lattner | 0ba0dd6 | 2008-12-12 06:21:18 +0000 | [diff] [blame] | 54 | |
| 55 | |
| 56 | |
| 57 | |
| 58 | struct S { void *X, *Y; }; |
| 59 | |
| 60 | struct S A = { |
| 61 | &BADIDENT, 0 /* expected-error {{use of undeclared identifier}} */ |
| 62 | }; |
Chris Lattner | fdb548e | 2008-12-12 19:20:14 +0000 | [diff] [blame] | 63 | |
| 64 | // rdar://6248081 |
Mike Stump | d1969d8 | 2009-07-22 00:43:08 +0000 | [diff] [blame] | 65 | void test6248081() { |
Chris Lattner | fdb548e | 2008-12-12 19:20:14 +0000 | [diff] [blame] | 66 | [10] // expected-error {{expected expression}} |
| 67 | } |
| 68 | |
Douglas Gregor | 4ec339f | 2009-01-19 19:26:10 +0000 | [diff] [blame] | 69 | struct forward; // expected-note{{forward declaration of 'struct forward'}} |
Eli Friedman | 5f76494 | 2008-12-17 22:22:03 +0000 | [diff] [blame] | 70 | void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}} |
Eli Friedman | 2342ef7 | 2008-12-17 22:19:57 +0000 | [diff] [blame] | 71 | |
Douglas Gregor | 4b2d3f7 | 2009-02-26 21:00:50 +0000 | [diff] [blame] | 72 | // PR3410 |
| 73 | void foo() { |
| 74 | int X; |
| 75 | X = 4 // expected-error{{expected ';' after expression}} |
| 76 | } |
Chris Lattner | 9a65b81 | 2010-05-14 17:44:56 +0000 | [diff] [blame] | 77 | |
Argyrios Kyrtzidis | 7ddf6b2 | 2011-06-24 17:58:59 +0000 | [diff] [blame] | 78 | // rdar://9045701 |
| 79 | void test9045701(int x) { |
| 80 | #define VALUE 0 |
| 81 | x = VALUE // expected-error{{expected ';' after expression}} |
| 82 | } |
Chris Lattner | 9a65b81 | 2010-05-14 17:44:56 +0000 | [diff] [blame] | 83 | |
| 84 | // rdar://7980651 |
| 85 | typedef int intptr_t; // expected-note {{'intptr_t' declared here}} |
| 86 | void bar(intptr y); // expected-error {{unknown type name 'intptr'; did you mean 'intptr_t'?}} |
John McCall | 837b1a3 | 2010-09-07 18:31:03 +0000 | [diff] [blame] | 87 | |
| 88 | void test1(void) { |
| 89 | int x = 2: // expected-error {{expected ';' at end of declaration}} |
| 90 | int y = x; |
| 91 | int z = y; |
| 92 | } |
Argyrios Kyrtzidis | b73377e | 2011-07-07 03:40:34 +0000 | [diff] [blame] | 93 | |
| 94 | void test2(int x) { |
| 95 | #define VALUE2 VALUE+VALUE |
| 96 | #define VALUE3 VALUE+0 |
| 97 | #define VALUE4(x) x+0 |
| 98 | x = VALUE2 // expected-error{{expected ';' after expression}} |
| 99 | x = VALUE3 // expected-error{{expected ';' after expression}} |
| 100 | x = VALUE4(0) // expected-error{{expected ';' after expression}} |
| 101 | } |