diff options
author | Richard Guenther <rguenther@suse.de> | 2010-04-26 09:19:24 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-04-26 09:19:24 +0000 |
commit | 98b2dfbb6d39dc038d047a51c5637358d87b8c18 (patch) | |
tree | fdd3053645c70006fe3a32a72826ad71d8c7519b | |
parent | 1ae3075b79bad398cb152bef6d4431536aa6bde1 (diff) | |
download | gcc-98b2dfbb6d39dc038d047a51c5637358d87b8c18.zip gcc-98b2dfbb6d39dc038d047a51c5637358d87b8c18.tar.gz gcc-98b2dfbb6d39dc038d047a51c5637358d87b8c18.tar.bz2 |
re PR c++/43080 (ICE with anonymous union and -flto)
2010-04-26 Richard Guenther <rguenther@suse.de>
PR lto/43080
* gimple.c (gimple_decl_printable_name): Deal gracefully
with a NULL DECL_NAME.
* g++.dg/lto/20100423-3_0.C: New testcase.
From-SVN: r158723
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/20100423-3_0.C | 14 |
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 54ad269..14b8b45 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2010-04-26 Richard Guenther <rguenther@suse.de> + PR lto/43080 + * gimple.c (gimple_decl_printable_name): Deal gracefully + with a NULL DECL_NAME. + +2010-04-26 Richard Guenther <rguenther@suse.de> + PR lto/42425 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT if emitting debug information and it is either a function diff --git a/gcc/gimple.c b/gcc/gimple.c index aab6ef2..6d439c5 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -4579,7 +4579,8 @@ gimple_ior_addresses_taken (bitmap addresses_taken, gimple stmt) const char * gimple_decl_printable_name (tree decl, int verbosity) { - gcc_assert (decl && DECL_NAME (decl)); + if (!DECL_NAME (decl)) + return NULL; if (DECL_ASSEMBLER_NAME_SET_P (decl)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e041658..0524b7c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2010-04-26 Richard Guenther <rguenther@suse.de> + PR lto/43080 + * g++.dg/lto/20100423-3_0.C: New testcase. + +2010-04-26 Richard Guenther <rguenther@suse.de> + PR lto/42425 * g++.dg/lto/20100423-2_0.C: New testcase. diff --git a/gcc/testsuite/g++.dg/lto/20100423-3_0.C b/gcc/testsuite/g++.dg/lto/20100423-3_0.C new file mode 100644 index 0000000..49564a5 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/20100423-3_0.C @@ -0,0 +1,14 @@ +// { dg-lto-do assemble } +// { dg-lto-options {{-flto -g}} } + +inline int foo() +{ + static union { int i; }; + return i; +} + +void bar() +{ + foo(); +} + |