blob: 09b43e50571f706537864be0a8f240d6faa83bb3 [file] [log] [blame]
Daniel Dunbarffd408a2009-03-24 02:24:46 +00001// RUN: clang-cc %s -fsyntax-only -verify -pedantic
Chris Lattner4b009652007-07-25 00:24:17 +00002
3extern int a1[];
4
5void f0();
6void f1(int [*]);
7void f2(int [const *]);
8void f3(int [volatile const*]);
Chris Lattner6ab935b2008-04-05 06:32:51 +00009int f4(*XX)(void); /* expected-error {{cannot return}} expected-warning {{type specifier missing, defaults to 'int'}} */
Chris Lattner4b009652007-07-25 00:24:17 +000010
11char ((((*X))));
12
13void (*signal(int, void (*)(int)))(int);
14
Chris Lattnercc98d8c2009-04-12 20:42:31 +000015int a, ***C, * const D, B(int);
Chris Lattner4b009652007-07-25 00:24:17 +000016
17int *A;
18
19struct str;
20
21int test2(int *P, int A) {
22 struct str;
23
24 // Hard case for array decl, not Array[*].
25 int Array[*(int*)P+A];
26}
27
Chris Lattneracb67d92008-04-06 06:47:48 +000028typedef int atype;
29int test3(x,
30 atype /* expected-error {{unexpected type name 'atype': expected identifier}} */
31 ) int x, atype; {}
Chris Lattner4b009652007-07-25 00:24:17 +000032
Chris Lattnerc337fa22008-04-06 06:50:56 +000033int test4(x, x) int x; {} /* expected-error {{redefinition of parameter 'x'}} */
34
Chris Lattnercd61d592008-11-11 06:13:16 +000035
36// PR3031
37int (test5), ; // expected-error {{expected identifier or '('}}
38
Chris Lattnercc98d8c2009-04-12 20:42:31 +000039
40
41// PR3963 & rdar://6759604 - test error recovery for mistyped "typenames".
42
43struct xyz { int y; };
44
45foo_t a = 4; // expected-error {{unknown type name 'foo_t'}}
46xyz b; // expected-error {{unknown type name 'xyz'}}
47
48foo_t *d; // expected-error {{unknown type name 'foo_t'}}
49
50static f; // expected-warning {{type specifier missing, defaults to 'int'}}
51static g = 4; // expected-warning {{type specifier missing, defaults to 'int'}}
52static h // expected-warning {{type specifier missing, defaults to 'int'}}
53 __asm__("foo"); // expected-warning {{extension used}}
54
55int bar() { return a; }