From d8a24b65216793dbdb1939f9b6a034fb02ccc3ae Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Wed, 12 Jan 2011 17:02:41 +0000 Subject: [PATCH] re PR debug/47209 (ICE: SIGSEGV in should_emit_struct_debug (dwarf2out.c:627) with -f{no-,}emit-struct-debug-{baseonly,reduced} -g) 2011-01-12 Kai Tietz PR debug/47209 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT of type. 2011-01-12 Kai Tietz PR debug/47209 * g++.dg/debug/pr47209.C: New. From-SVN: r168718 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/debug/pr47209.C | 12 ++++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/debug/pr47209.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index db57dfd81ad..78420e026e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-01-12 Kai Tietz + + PR debug/47209 + * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT + of type. + 2011-01-12 Jan Hubicka PR driver/47244 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 4e9ce9148cd..7e64b37f52a 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -619,7 +619,7 @@ should_emit_struct_debug (tree type, enum debug_info_usage usage) if (criterion == DINFO_STRUCT_FILE_ANY) return DUMP_GSTRUCT (type, usage, criterion, generic, false, true); - type_decl = TYPE_STUB_DECL (type); + type_decl = TYPE_STUB_DECL (TYPE_MAIN_VARIANT (type)); if (criterion == DINFO_STRUCT_FILE_SYS && DECL_IN_SYSTEM_HEADER (type_decl)) return DUMP_GSTRUCT (type, usage, criterion, generic, false, true); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 451d64388c3..f7ab937a58a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-01-12 Kai Tietz + + PR debug/47209 + * g++.dg/debug/pr47209.C: New. + 2011-01-12 Richard Guenther PR lto/47259 diff --git a/gcc/testsuite/g++.dg/debug/pr47209.C b/gcc/testsuite/g++.dg/debug/pr47209.C new file mode 100644 index 00000000000..c144c16396c --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/pr47209.C @@ -0,0 +1,12 @@ +// { dg-do compile } +// { dg-options "-femit-struct-debug-baseonly" } +struct A +{ + void foo (); +}; + +struct B : A +{ + typedef const A base; + using base::foo; +};