1 | // RUN: %clang_cc1 %s -verify -fsyntax-only |
2 | typedef char T[4]; |
3 | |
4 | T foo(int n, int m) { } // expected-error {{cannot return array type}} |
5 | |
6 | void foof(const char *, ...) __attribute__((__format__(__printf__, 1, 2))), barf (void); |
7 | |
8 | int typedef validTypeDecl() { } // expected-error {{function definition declared 'typedef'}} |
9 | |
10 | struct _zend_module_entry { } // expected-error {{expected ';' after struct}} |
11 | int gv1; |
12 | typedef struct _zend_function_entry { } // expected-error {{expected ';' after struct}} \ |
13 | // expected-warning {{typedef requires a name}} |
14 | int gv2; |
15 | |
16 | static void buggy(int *x) { } |
17 | |
18 | // Type qualifiers. |
19 | typedef int f(void); |
20 | typedef f* fptr; |
21 | const f* v1; // expected-warning {{qualifier on function type 'f' (aka 'int (void)') has unspecified behavior}} |
22 | __restrict__ f* v2; // expected-error {{restrict requires a pointer or reference ('f' (aka 'int (void)') is invalid)}} |
23 | __restrict__ fptr v3; // expected-error {{pointer to function type 'f' (aka 'int (void)') may not be 'restrict' qualified}} |
24 | f *__restrict__ v4; // expected-error {{pointer to function type 'f' (aka 'int (void)') may not be 'restrict' qualified}} |
25 | |
26 | restrict struct hallo; // expected-error {{restrict requires a pointer or reference}} |
27 | |
28 | // PR6180 |
29 | struct test1 { |
30 | } // expected-error {{expected ';' after struct}} |
31 | |
32 | void test2() {} |
33 | |
34 | |
35 | // PR6423 |
36 | struct test3s { |
37 | } // expected-error {{expected ';' after struct}} |
38 | typedef int test3g; |
39 | |
40 | // PR8264 |
41 | const const int pr8264_1 = 0; // expected-warning {{duplicate 'const' declaration specifier}} |
42 | volatile volatile int pr8264_2; // expected-warning {{duplicate 'volatile' declaration specifier}} |
43 | char * restrict restrict pr8264_3; // expected-warning {{duplicate 'restrict' declaration specifier}} |
44 | |
45 | extern extern int pr8264_4; // expected-warning {{duplicate 'extern' declaration specifier}} |
46 | void pr8264_5() { |
47 | register register int x; // expected-warning {{duplicate 'register' declaration specifier}} |
48 | } |
49 | |
50 | inline inline void pr8264_6() {} // expected-warning {{duplicate 'inline' declaration specifier}} |
51 | _Noreturn _Noreturn void pr8264_7(); // expected-warning {{duplicate '_Noreturn' declaration specifier}} |
52 | |