From: Jason Merrill Date: Sat, 15 Mar 2003 17:41:35 +0000 (-0500) Subject: re PR debug/9039 (ICE, anonymous union, gen_decl_die, dwarf2out.c:11974) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ae0e598210b587bef1e9aaceaf54ffb21c5017d9;p=gcc.git 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 --- 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 + 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; +}