From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/gcc.dg/debug/redecl-1.c | 352 ++++++++++++++++++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/debug/redecl-1.c (limited to 'gcc/testsuite/gcc.dg/debug/redecl-1.c') diff --git a/gcc/testsuite/gcc.dg/debug/redecl-1.c b/gcc/testsuite/gcc.dg/debug/redecl-1.c new file mode 100644 index 000000000..14a453e04 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/redecl-1.c @@ -0,0 +1,352 @@ +/* Test for multiple declarations and composite types. As in bug + 13801. Test no problems in debug information generation. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +typedef int IA[]; +typedef int A10[10]; + +/* Test all combinations of: a variable declared at file scope (no + type specifiers, or extern, or static), or just inside a function + (with extern), redeclared in an inner scope (with extern), and + redeclared in an inner scope when the previous declaration is + hidden (with extern, and not if the original declaration was + static). Test three times: incomplete variable types; pointers to + incomplete types; functions returning such pointers. + + This test only includes the valid code cases, to test debug info + generation. (Incomplete static at file scope is not permitted by + ISO C, but is accepted by GCC as an extension without + -pedantic.) */ + +A10 a5; +void +f5 (void) +{ + sizeof(a5); + { + extern IA a5; + sizeof(a5); + { + int a5; + { + extern A10 a5; + sizeof(a5); + } + } + sizeof(a5); + } + sizeof(a5); +} +extern A10 a5; + +A10 a7; +void +f7 (void) +{ + sizeof(a7); + { + extern A10 a7; + sizeof(a7); + { + int a7; + { + extern A10 a7; + sizeof(a7); + } + } + sizeof(a7); + } + sizeof(a7); +} +extern A10 a7; + +extern A10 a13; +void +f13 (void) +{ + sizeof(a13); + { + extern IA a13; + sizeof(a13); + { + int a13; + { + extern A10 a13; + sizeof(a13); + } + } + sizeof(a13); + } + sizeof(a13); +} +extern A10 a13; + +extern A10 a15; +void +f15 (void) +{ + sizeof(a15); + { + extern A10 a15; + sizeof(a15); + { + int a15; + { + extern A10 a15; + sizeof(a15); + } + } + sizeof(a15); + } + sizeof(a15); +} +extern A10 a15; + + +static A10 a18; +void +f18 (void) +{ + sizeof(a18); + { + extern IA a18; + sizeof(a18); + } + sizeof(a18); +} +extern A10 a18; + +static A10 a19; +void +f19 (void) +{ + sizeof(a19); + { + extern A10 a19; + sizeof(a19); + } + sizeof(a19); +} +extern A10 a19; + +A10 *b5; +void +g5 (void) +{ + sizeof(*b5); + { + extern IA *b5; + sizeof(*b5); + { + int b5; + { + extern A10 *b5; + sizeof(*b5); + } + } + sizeof(*b5); + } + sizeof(*b5); +} +extern A10 *b5; + +A10 *b7; +void +g7 (void) +{ + sizeof(*b7); + { + extern A10 *b7; + sizeof(*b7); + { + int b7; + { + extern A10 *b7; + sizeof(*b7); + } + } + sizeof(*b7); + } + sizeof(*b7); +} +extern A10 *b7; + +extern A10 *b13; +void +g13 (void) +{ + sizeof(*b13); + { + extern IA *b13; + sizeof(*b13); + { + int b13; + { + extern A10 *b13; + sizeof(*b13); + } + } + sizeof(*b13); + } + sizeof(*b13); +} +extern A10 *b13; + +extern A10 *b15; +void +g15 (void) +{ + sizeof(*b15); + { + extern A10 *b15; + sizeof(*b15); + { + int b15; + { + extern A10 *b15; + sizeof(*b15); + } + } + sizeof(*b15); + } + sizeof(*b15); +} +extern A10 *b15; + +static A10 *b18; +void +g18 (void) +{ + sizeof(*b18); + { + extern IA *b18; + sizeof(*b18); + } + sizeof(*b18); +} +extern A10 *b18; + +static A10 *b19; +void +g19 (void) +{ + sizeof(*b19); + { + extern A10 *b19; + sizeof(*b19); + } + sizeof(*b19); +} +extern A10 *b19; + +A10 *c5 (void); +void +h5 (void) +{ + sizeof(*c5()); + { + extern IA *c5 (void); + sizeof(*c5()); + { + int c5; + { + extern A10 *c5 (void); + sizeof(*c5()); + } + } + sizeof(*c5()); + } + sizeof(*c5()); +} +A10 *c5 (void) { return 0; } + +A10 *c7 (void); +void +h7 (void) +{ + sizeof(*c7()); + { + extern A10 *c7 (void); + sizeof(*c7()); + { + int c7; + { + extern A10 *c7 (void); + sizeof(*c7()); + } + } + sizeof(*c7()); + } + sizeof(*c7()); +} +A10 *c7 (void) { return 0; } + +extern A10 *c13 (void); +void +h13 (void) +{ + sizeof(*c13()); + { + extern IA *c13 (void); + sizeof(*c13()); + { + int c13; + { + extern A10 *c13 (void); + sizeof(*c13()); + } + } + sizeof(*c13()); + } + sizeof(*c13()); +} +extern A10 *c13 (void) { return 0; } + +extern A10 *c15 (void); +void +h15 (void) +{ + sizeof(*c15()); + { + extern A10 *c15 (void); + sizeof(*c15()); + { + int c15; + { + extern A10 *c15 (void); + sizeof(*c15()); + } + } + sizeof(*c15()); + } + sizeof(*c15()); +} +extern A10 *c15 (void) { return 0; } + +static A10 *c18 (void); +void +h18 (void) +{ + sizeof(*c18()); + { + extern IA *c18 (void); + sizeof(*c18()); + } + sizeof(*c18()); +} +static A10 *c18 (void) { return 0; } + +static A10 *c19 (void); +void +h19 (void) +{ + sizeof(*c19()); + { + extern A10 *c19 (void); + sizeof(*c19()); + } + sizeof(*c19()); +} +static A10 *c19 (void) { return 0; } -- cgit v1.2.3