aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-01-15 16:06:42 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-01-15 16:06:42 +0000
commit17f781605e695711a3383b0474e806ce8150cf49 (patch)
tree86f4c73ec0b6597d5f20c1c2e23021d0ddb3f99a
parent41bc37bad8cb29027155f247e6ad4be83d64f163 (diff)
downloadgcc-17f781605e695711a3383b0474e806ce8150cf49.zip
gcc-17f781605e695711a3383b0474e806ce8150cf49.tar.gz
gcc-17f781605e695711a3383b0474e806ce8150cf49.tar.bz2
re PR debug/88046 (ICE in add_data_member_location_attribute at gcc/dwarf2out.c:19237 since r261885)
2019-01-15 Richard Biener <rguenther@suse.de> PR debug/88046 * dwarf2out.c (gen_member_die): Do not generate inheritance DIEs late. * g++.dg/lto/pr88046_0.C: New testcase. From-SVN: r267940
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/lto/pr88046_0.C14
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 14f0730..c3b9f14 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2019-01-15 Richard Biener <rguenther@suse.de>
+ PR debug/88046
+ * dwarf2out.c (gen_member_die): Do not generate inheritance
+ DIEs late.
+
+2019-01-15 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/88855
* tree-if-conv.c (combine_blocks): Collect
SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 8b4f7bc..a1b5a5e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -25046,7 +25046,7 @@ gen_member_die (tree type, dw_die_ref context_die)
the TREE node representing the appropriate (containing) type. */
/* First output info about the base classes. */
- if (binfo)
+ if (binfo && early_dwarf)
{
vec<tree, va_gc> *accesses = BINFO_BASE_ACCESSES (binfo);
int i;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a5cfa7f..1b0689d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2019-01-15 Richard Biener <rguenther@suse.de>
+ PR debug/88046
+ * g++.dg/lto/pr88046_0.C: New testcase.
+
+2019-01-15 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/88855
* gcc.dg/pr88855.c: New testcase.
diff --git a/gcc/testsuite/g++.dg/lto/pr88046_0.C b/gcc/testsuite/g++.dg/lto/pr88046_0.C
new file mode 100644
index 0000000..a254dd0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr88046_0.C
@@ -0,0 +1,14 @@
+// { dg-lto-do link }
+// { dg-lto-options { { -O2 -fPIC -flto } } }
+// { dg-extra-ld-options "-shared -g" }
+
+class a {};
+class b : virtual a {
+public:
+ void operator<<(bool);
+};
+void c() try {
+ b d;
+ d << "";
+} catch (int) {
+}