recovery.c revision 2fe9b7fb07dff15dd15dd8755a9a9e6de0fe46fc
1// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -fblocks %s 2 3// PR2241 4float test2241[2] = { 5 1e, // expected-error {{exponent}} 6 1ee0 // expected-error {{exponent}} 7}; 8 9 10// Testcase derived from PR2692 11static 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}} 15} 16 17 18// PR3172 19} // expected-error {{expected external declaration}} 20 21 22// rdar://6094870 23void test(int a) { 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 ; 40 41 if (x.i == 0)) // expected-error {{expected expression}} 42 test(0); 43 else 44 ; 45} 46 47 48 49char (((( /* expected-note {{to match this '('}} */ 50 *X x ] )))); /* expected-error {{expected ')'}} */ 51 52; // expected-warning {{extra ';' outside of a function}} 53 54 55 56 57struct S { void *X, *Y; }; 58 59struct S A = { 60&BADIDENT, 0 /* expected-error {{use of undeclared identifier}} */ 61}; 62 63// rdar://6248081 64void test6248081() { 65 [10] // expected-error {{expected expression}} 66} 67 68struct forward; // expected-note{{forward declaration of 'struct forward'}} 69void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}} 70 71// PR3410 72void foo() { 73 int X; 74 X = 4 // expected-error{{expected ';' after expression}} 75} 76 77// rdar://9045701 78void test9045701(int x) { 79#define VALUE 0 80 x = VALUE // expected-error{{expected ';' after expression}} 81} 82 83// rdar://7980651 84typedef int intptr_t; // expected-note {{'intptr_t' declared here}} 85void bar(intptr y); // expected-error {{unknown type name 'intptr'; did you mean 'intptr_t'?}} 86 87void test1(void) { 88 int x = 2: // expected-error {{expected ';' at end of declaration}} 89 int y = x; 90 int z = y; 91} 92 93void test2(int x) { 94#define VALUE2 VALUE+VALUE 95#define VALUE3 VALUE+0 96#define VALUE4(x) x+0 97 x = VALUE2 // expected-error{{expected ';' after expression}} 98 x = VALUE3 // expected-error{{expected ';' after expression}} 99 x = VALUE4(0) // expected-error{{expected ';' after expression}} 100} 101