xref: /aosp_15_r20/external/clang/test/Sema/invalid-decl.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -fsyntax-only -verify
2*67e74705SXin Li 
test()3*67e74705SXin Li void test() {
4*67e74705SXin Li     char = 4;  // expected-error {{expected identifier}}
5*67e74705SXin Li }
6*67e74705SXin Li 
7*67e74705SXin Li 
8*67e74705SXin Li // PR2400
9*67e74705SXin Li typedef xtype (*x)(void* handle); // expected-error {{function cannot return function type}} expected-warning {{type specifier missing, defaults to 'int'}} expected-warning {{type specifier missing, defaults to 'int'}}
10*67e74705SXin Li 
11*67e74705SXin Li typedef void ytype();
12*67e74705SXin Li 
13*67e74705SXin Li 
14*67e74705SXin Li typedef struct _zend_module_entry zend_module_entry;
15*67e74705SXin Li struct _zend_module_entry {
16*67e74705SXin Li     ytype globals_size; // expected-error {{field 'globals_size' declared as a function}}
17*67e74705SXin Li };
18*67e74705SXin Li 
19*67e74705SXin Li zend_module_entry openssl_module_entry = {
20*67e74705SXin Li     sizeof(zend_module_entry)
21*67e74705SXin Li };
22*67e74705SXin Li 
23*67e74705SXin Li // <rdar://problem/11067144>
24*67e74705SXin Li typedef int (FunctionType)(int *value);
25*67e74705SXin Li typedef struct {
26*67e74705SXin Li   UndefinedType undef; // expected-error {{unknown type name 'UndefinedType'}}
27*67e74705SXin Li   FunctionType fun; // expected-error {{field 'fun' declared as a function}}
28*67e74705SXin Li } StructType;
f(StructType * buf)29*67e74705SXin Li void f(StructType *buf) {
30*67e74705SXin Li   buf->fun = 0;
31*67e74705SXin Li }
32*67e74705SXin Li 
33*67e74705SXin Li // rdar://11743706
34*67e74705SXin Li static void bar(hid_t, char); // expected-error {{expected identifier}}
35*67e74705SXin Li 
36*67e74705SXin Li static void bar(hid_t p, char); // expected-error {{unknown type name 'hid_t'}}
37*67e74705SXin Li 
foo()38*67e74705SXin Li void foo() {
39*67e74705SXin Li   (void)bar;
40*67e74705SXin Li }
41*67e74705SXin Li 
42*67e74705SXin Li void test2();
43*67e74705SXin Li void test2(undef); // expected-error {{a parameter list without types is only allowed in a function definition}}
test2()44*67e74705SXin Li void test2() { }
45*67e74705SXin Li 
46*67e74705SXin Li void test3();
47*67e74705SXin Li void test3; // expected-error {{incomplete type}}
test3()48*67e74705SXin Li void test3() { }
49*67e74705SXin Li 
50*67e74705SXin Li void ellipsis1(...); // expected-error {{ISO C requires a named parameter before '...'}}
51