diff options
author | Mark Mitchell <mark@codesourcery.com> | 2005-10-11 06:19:55 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2005-10-11 06:19:55 +0000 |
commit | eb2182e29917811d90278a649a100e8bc8c1d13a (patch) | |
tree | 409de251d2e760264b6f7cdcef9c4d4b8cc2fe13 | |
parent | 18c75543a89fc2b6a62b3e2967cb89b83fb96ada (diff) | |
download | gcc-eb2182e29917811d90278a649a100e8bc8c1d13a.zip gcc-eb2182e29917811d90278a649a100e8bc8c1d13a.tar.gz gcc-eb2182e29917811d90278a649a100e8bc8c1d13a.tar.bz2 |
re PR c++/24302 (anonymous global union segfault with g++ 3.4.x)
PR c++/24302
* toplev.c (check_global_declaration_1): Robustify.
PR c++/24302
* g++.dg/warn/Wunused-12.C: New test.
From-SVN: r105222
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wunused-12.C | 8 | ||||
-rw-r--r-- | gcc/toplev.c | 2 |
4 files changed, 18 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 390384b..9fa7f0d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-10-10 Mark Mitchell <mark@codesourcery.com> + + PR c++/24277 + * pt.c (instantiate_decl): Call finish_static_data_member_decl for + static data members. + 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org> Mark Mitchell <mark@codesourcery.com> diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9e9dc6e..aa4a66f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2005-10-10 Mark Mitchell <mark@codesourcery.com> + PR c++/24302 + * g++.dg/warn/Wunused-12.C: New test. + PR c++/23437 * g++.dg/template/arg4.C: New test. diff --git a/gcc/testsuite/g++.dg/warn/Wunused-12.C b/gcc/testsuite/g++.dg/warn/Wunused-12.C new file mode 100644 index 0000000..51d2343 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-12.C @@ -0,0 +1,8 @@ +// PR c++/24302 +// { dg-options "-Wunused" } + +static union +{ + unsigned char FLT4ARR[4]; + float FLT4; +}; // { dg-warning "used" } diff --git a/gcc/toplev.c b/gcc/toplev.c index 796c7bf..eea9ab2 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -836,7 +836,7 @@ check_global_declaration_1 (tree decl) && ! TREE_USED (decl) /* The TREE_USED bit for file-scope decls is kept in the identifier, to handle multiple external decls in different scopes. */ - && ! TREE_USED (DECL_NAME (decl)) + && ! (DECL_NAME (decl) && TREE_USED (DECL_NAME (decl))) && ! DECL_EXTERNAL (decl) && ! TREE_PUBLIC (decl) /* A volatile variable might be used in some non-obvious way. */ |