recovery.c revision d1969d803cfcc65f1c334df4cc89c7fdd33ee4c9
1// RUN: clang-cc -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 {{ISO C does not allow an 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