aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-06-18 13:56:24 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-06-18 13:56:24 +0000
commitaa61ac43e06d21a48d25da62ece852b2fc60d7f2 (patch)
tree78dff71a529068a89330cd60b701d908a0e1bdb8
parenta9b6c90c5db3af10bae59db568c68002d8ed9969 (diff)
downloadgcc-aa61ac43e06d21a48d25da62ece852b2fc60d7f2.zip
gcc-aa61ac43e06d21a48d25da62ece852b2fc60d7f2.tar.gz
gcc-aa61ac43e06d21a48d25da62ece852b2fc60d7f2.tar.bz2
re PR debug/90900 (ICE in copy_rtx, at rtl.c:376)
2019-06-18 Richard Biener <rguenther@suse.de> PR debug/90900 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL as if optimized away. * gcc.dg/gomp/pr90900.c: New testcase. From-SVN: r272421
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfgexpand.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr90900.c11
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cdfaa5f..461792c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-06-18 Richard Biener <rguenther@suse.de>
+
+ PR debug/90900
+ * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
+ as if optimized away.
+
2019-06-18 Tom de Vries <tdevries@suse.de>
* config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 4272e24..cc8eed6 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -4387,7 +4387,11 @@ expand_debug_expr (tree exp)
op0 = DECL_RTL_IF_SET (exp);
/* This decl was probably optimized away. */
- if (!op0)
+ if (!op0
+ /* At least label RTXen are sometimes replaced by
+ NOTE_INSN_DELETED_LABEL. Any notes here are not
+ handled by copy_rtx. */
+ || NOTE_P (op0))
{
if (!VAR_P (exp)
|| DECL_EXTERNAL (exp)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cc5feca..061f7fb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-06-18 Richard Biener <rguenther@suse.de>
+
+ PR debug/90900
+ * gcc.dg/gomp/pr90900.c: New testcase.
+
2019-06-18 Martin Sebor <msebor@redhat.com>
* gcc.dg/pr90866-2.c: Remove a pointless declaration
diff --git a/gcc/testsuite/gcc.dg/gomp/pr90900.c b/gcc/testsuite/gcc.dg/gomp/pr90900.c
new file mode 100644
index 0000000..d4c5d7d5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gomp/pr90900.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fopenmp -g" } */
+
+void f (int a)
+{
+ void *x = &&lab;
+#pragma omp parallel
+ if (a)
+ { lab: __builtin_unreachable(); }
+ x;
+}