diff options
author | dim <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
commit | 50b73317314e889cf39c7b1d6cbf419fa7502f22 (patch) | |
tree | be1815eb79b42ff482a8562b13c2dcbf0c5dcbee /test/Sema/decl-in-prototype.c | |
parent | dc04cb328508e61aad809d9b53b12f9799a00e7d (diff) | |
download | FreeBSD-src-50b73317314e889cf39c7b1d6cbf419fa7502f22.zip FreeBSD-src-50b73317314e889cf39c7b1d6cbf419fa7502f22.tar.gz |
Vendor import of clang trunk r154661:
http://llvm.org/svn/llvm-project/cfe/trunk@r154661
Diffstat (limited to 'test/Sema/decl-in-prototype.c')
-rw-r--r-- | test/Sema/decl-in-prototype.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/Sema/decl-in-prototype.c b/test/Sema/decl-in-prototype.c new file mode 100644 index 0000000..05b8e0a --- /dev/null +++ b/test/Sema/decl-in-prototype.c @@ -0,0 +1,33 @@ +// RUN: %clang_cc1_only -verify %s + +const int AA = 5; + +int f1(enum {AA,BB} E) { + return BB; +} + +int f2(enum {AA=7,BB} E) { + return AA; +} + +struct a { +}; + +int f3(struct a { } *); // expected-warning {{will not be visible outside of this function}} + +struct A { struct b { int j; } t; }; // expected-note {{previous definition is here}} + +int f4(struct A { struct b { int j; } t; } *); // expected-warning {{declaration of 'struct A' will not be visible outside of this function}} expected-warning {{redefinition of 'b' will not be visible outside of this function}} + +struct aA { + struct ab { // expected-note {{previous definition is here}} expected-note {{previous definition is here}} + int j; + } b; +}; + +int f5(struct aA { struct ab { int j; } b; struct ab { char glorx; } glorx; } *); // expected-warning {{declaration of 'struct aA' will not be visible}} expected-warning {{redefinition of 'ab' will not be visible}} expected-warning {{redefinition of 'ab' will not be visible}} + +void f6(struct z {int b;} c) { // expected-warning {{declaration of 'struct z' will not be visible outside of this function}} + struct z d; + d.b = 4; +} |