aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2011-01-12 17:02:41 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2011-01-12 18:02:41 +0100
commitd8a24b65216793dbdb1939f9b6a034fb02ccc3ae (patch)
treeb28ed4117e3483379437c0ec86a347d1763d15b2
parent56e22cab21f64b500510118ae7705647bb56cce4 (diff)
downloadgcc-d8a24b65216793dbdb1939f9b6a034fb02ccc3ae.zip
gcc-d8a24b65216793dbdb1939f9b6a034fb02ccc3ae.tar.gz
gcc-d8a24b65216793dbdb1939f9b6a034fb02ccc3ae.tar.bz2
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 <kai.tietz@onevision.com> PR debug/47209 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT of type. 2011-01-12 Kai Tietz <kai.tietz@onevision.com> PR debug/47209 * g++.dg/debug/pr47209.C: New. From-SVN: r168718
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/debug/pr47209.C12
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index db57dfd..78420e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-12 Kai Tietz <kai.tietz@onevision.com>
+
+ PR debug/47209
+ * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
+ of type.
+
2011-01-12 Jan Hubicka <jh@suse.cz>
PR driver/47244
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 4e9ce91..7e64b37 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 451d643..f7ab937 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-12 Kai Tietz <kai.tietz@onevision.com>
+
+ PR debug/47209
+ * g++.dg/debug/pr47209.C: New.
+
2011-01-12 Richard Guenther <rguenther@suse.de>
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 0000000..c144c16
--- /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;
+};