From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- clang/test/Sema/struct-decl.c | 59 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 clang/test/Sema/struct-decl.c (limited to 'clang/test/Sema/struct-decl.c') diff --git a/clang/test/Sema/struct-decl.c b/clang/test/Sema/struct-decl.c new file mode 100644 index 0000000..6070e87 --- /dev/null +++ b/clang/test/Sema/struct-decl.c @@ -0,0 +1,59 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +// PR3459 +struct bar { + char n[1]; +}; + +struct foo { + char name[(int)&((struct bar *)0)->n]; + char name2[(int)&((struct bar *)0)->n - 1]; //expected-error{{'name2' declared as an array with a negative size}} +}; + +// PR3430 +struct s { + struct st { + int v; + } *ts; +}; + +struct st; + +int foo() { + struct st *f; + return f->v + f[0].v; +} + +// PR3642, PR3671 +struct pppoe_tag { + short tag_type; + char tag_data[]; +}; +struct datatag { + 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}} + char data; +}; + + +// PR4092 +struct s0 { + char a; // expected-note {{previous declaration is here}} + char a; // expected-error {{duplicate member 'a'}} +}; + +struct s0 f0(void) {} + +// - This previously triggered an assertion failure. +struct x0 { + unsigned int x1; +}; + +// rdar://problem/9150338 +static struct test1 { // expected-warning {{'static' ignored on this declaration}} + int x; +}; +const struct test2 { // expected-warning {{'const' ignored on this declaration}} + int x; +}; +inline struct test3 { // expected-warning {{'inline' ignored on this declaration}} + int x; +}; -- cgit v1.2.3