struct-decl.c revision 740782a78386ad3c64c670ba9b1619545bbb4901
1// RUN: clang-cc -fsyntax-only -verify %s 2// PR3459 3struct bar { 4 char n[1]; 5}; 6 7struct foo { 8 char name[(int)&((struct bar *)0)->n]; 9 char name2[(int)&((struct bar *)0)->n - 1]; //expected-error{{array size is negative}} 10}; 11 12// PR3430 13struct s { 14 struct st { 15 int v; 16 } *ts; 17}; 18 19struct st; 20 21int foo() { 22 struct st *f; 23 return f->v + f[0].v; 24} 25 26// PR3642, PR3671 27struct pppoe_tag { 28 short tag_type; 29 char tag_data[]; 30}; 31struct datatag { 32 struct pppoe_tag hdr; //expected-warning{{field 'hdr' with variable sized type 'struct pppoe_tag' not at the end of a struct or class is a GNU extension}} 33 char data; 34}; 35 36