Argiris Kirtzidis | 74b477c | 2008-10-05 00:06:24 +0000 | [diff] [blame] | 1 | // RUN: clang -fsyntax-only -verify %s |
| 2 | |
| 3 | void f() { |
| 4 | int a; |
| 5 | struct S { int m; }; |
| 6 | typedef S *T; |
| 7 | |
| 8 | // Expressions. |
| 9 | T(a)->m = 7; |
| 10 | int(a)++; // expected-error {{invalid lvalue in increment/decrement expression}} |
| 11 | __extension__ int(a)++; // expected-error {{invalid lvalue in increment/decrement expression}} |
| 12 | typeof(int)(a,5)<<a; // expected-error {{function-style cast to a builtin type can only take one argument}} |
| 13 | void(a), ++a; // expected-warning {{statement was disambiguated as expression}} expected-warning {{expression result unused}} |
Argiris Kirtzidis | 88527fb | 2008-10-05 15:03:47 +0000 | [diff] [blame^] | 14 | if (int(a)+1) {} |
Argiris Kirtzidis | 74b477c | 2008-10-05 00:06:24 +0000 | [diff] [blame] | 15 | |
| 16 | // Declarations. |
| 17 | T(*d)(int(p)); // expected-warning {{statement was disambiguated as declaration}} expected-error {{previous definition is here}} |
| 18 | T(d)[5]; // expected-warning {{statement was disambiguated as declaration}} expected-error {{redefinition of 'd'}} |
| 19 | typeof(int[])(f) = { 1, 2 }; // expected-warning {{statement was disambiguated as declaration}} |
| 20 | void(b)(int); |
Argiris Kirtzidis | 085d146 | 2008-10-05 14:27:18 +0000 | [diff] [blame] | 21 | int(d2) __attribute__(()); // expected-warning {{statement was disambiguated as declaration}} |
Argiris Kirtzidis | 74b477c | 2008-10-05 00:06:24 +0000 | [diff] [blame] | 22 | } |