diff options
| -rw-r--r-- | gcc/ChangeLog | 3 | ||||
| -rw-r--r-- | gcc/dwarf2out.c | 3 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/debug/anonunion1.C | 14 |
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; +} |

