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 {{extraneous closing brace ('}')}}
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  // PR12595
42  if (x.i == 0))   // expected-error {{extraneous ')' after condition, expected a statement}}
43    test(0);
44  else
45    ;
46}
47
48
49
50char ((((                       /* expected-note {{to match this '('}} */
51         *X x ] ))));                    /* expected-error {{expected ')'}} */
52
53;   // expected-warning {{extra ';' outside of a function}}
54
55
56
57
58struct S { void *X, *Y; };
59
60struct S A = {
61&BADIDENT, 0     /* expected-error {{use of undeclared identifier}} */
62};
63
64// rdar://6248081
65void test6248081() {
66  [10]  // expected-error {{expected expression}}
67}
68
69struct forward; // expected-note{{forward declaration of 'struct forward'}}
70void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}}
71
72// PR3410
73void foo() {
74  int X;
75  X = 4 // expected-error{{expected ';' after expression}}
76}
77
78// rdar://9045701
79void test9045701(int x) {
80#define VALUE 0
81  x = VALUE // expected-error{{expected ';' after expression}}
82}
83
84// rdar://7980651
85typedef int intptr_t;  // expected-note {{'intptr_t' declared here}}
86void bar(intptr y);     // expected-error {{unknown type name 'intptr'; did you mean 'intptr_t'?}}
87
88void test1(void) {
89  int x = 2: // expected-error {{expected ';' at end of declaration}}
90  int y = x;
91  int z = y;
92}
93
94void 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}
102