aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2003-03-15 12:41:35 -0500
committerJason Merrill <jason@gcc.gnu.org>2003-03-15 12:41:35 -0500
commitae0e598210b587bef1e9aaceaf54ffb21c5017d9 (patch)
tree176af36ed24310b3ba88c8936113ecf1ca26773a /gcc
parentbac06cd3c4f3b42d335b42b0c67d58f10222d12e (diff)
downloadgcc-ae0e598210b587bef1e9aaceaf54ffb21c5017d9.zip
gcc-ae0e598210b587bef1e9aaceaf54ffb21c5017d9.tar.gz
gcc-ae0e598210b587bef1e9aaceaf54ffb21c5017d9.tar.bz2
re PR debug/9039 (ICE, anonymous union, gen_decl_die, dwarf2out.c:11974)
PR debug/9039 * dwarf2out.c (gen_decl_die): Ignore frontend tree codes. From-SVN: r64412
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/dwarf2out.c3
-rw-r--r--gcc/testsuite/g++.dg/debug/anonunion1.C14
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2a73783..447cf7b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2003-03-15 Jason Merrill <jason@redhat.com>
+ PR debug/9039
+ * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
+
PR debug/6387
* dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
function DIEs at toplevel.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index e31fcb8..fec07a7 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -12194,6 +12194,9 @@ gen_decl_die (decl, context_die)
break;
default:
+ if ((int)TREE_CODE (decl) > NUM_TREE_CODES)
+ /* Probably some frontend-internal decl. Assume we don't care. */
+ break;
abort ();
}
}
diff --git a/gcc/testsuite/g++.dg/debug/anonunion1.C b/gcc/testsuite/g++.dg/debug/anonunion1.C
new file mode 100644
index 0000000..c48a8cd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/anonunion1.C
@@ -0,0 +1,14 @@
+// PR debug/9039
+// Verify that the debugging backends don't get confused by ALIAS_DECLs.
+
+int foo()
+{
+ union
+ {
+ int z;
+ unsigned int w;
+ };
+
+ w = 0;
+ return 0;
+}