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