Home | History | Annotate | Download | only in Parser
      1 // RUN: %clang_cc1 -fsyntax-only -verify -pedantic -fblocks %s
      2 
      3 // PR2241
      4 float test2241[2] = {
      5   1e,            // expected-error {{exponent}}
      6   1ee0           // expected-error {{exponent}}
      7 };
      8 
      9 
     10 // Testcase derived from PR2692
     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}}
     15 }
     16 
     17 
     18 // PR3172
     19 } // expected-error {{extraneous closing brace ('}')}}
     20 
     21 
     22 // rdar://6094870
     23 void 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 
     50 char ((((                       /* expected-note {{to match this '('}} */
     51          *X x ] ))));                    /* expected-error {{expected ')'}} */
     52 
     53 ;   // expected-warning {{extra ';' outside of a function}}
     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 };
     63 
     64 // rdar://6248081
     65 void test6248081() {
     66   [10]  // expected-error {{expected expression}}
     67 }
     68 
     69 struct forward; // expected-note{{forward declaration of 'struct forward'}}
     70 void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}}
     71 
     72 // PR3410
     73 void foo() {
     74   int X;
     75   X = 4 // expected-error{{expected ';' after expression}}
     76 }
     77 
     78 // rdar://9045701
     79 void test9045701(int x) {
     80 #define VALUE 0
     81   x = VALUE // expected-error{{expected ';' after expression}}
     82 }
     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'?}}
     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 }
     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 }
    102