aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-04-26 09:19:24 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-04-26 09:19:24 +0000
commit98b2dfbb6d39dc038d047a51c5637358d87b8c18 (patch)
treefdd3053645c70006fe3a32a72826ad71d8c7519b
parent1ae3075b79bad398cb152bef6d4431536aa6bde1 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/gimple.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/lto/20100423-3_0.C14
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();
+}
+