summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 2a73783cee6..447cf7b9729 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 e31fcb878d3..fec07a76bd5 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 00000000000..c48a8cdc131
--- /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;
+}
OpenPOWER on IntegriCloud