aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-02-14 12:30:58 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-02-14 11:30:58 +0000
commit696c5b27c524cf65c6b06e93e62f047faad40a78 (patch)
tree025cb0cd849aa9f62b7fc8bd4f825d4c9de60fa0
parent133342f061ca8d9746484db81ddbb7e493618209 (diff)
downloadgcc-696c5b27c524cf65c6b06e93e62f047faad40a78.zip
gcc-696c5b27c524cf65c6b06e93e62f047faad40a78.tar.gz
gcc-696c5b27c524cf65c6b06e93e62f047faad40a78.tar.bz2
Call free_dominance_info when transformed in DCE (PR rtl-optimization/89242).
2019-02-14 Martin Liska <mliska@suse.cz> PR rtl-optimization/89242 * dce.c (delete_unmarked_insns): Call free_dominance_info we process a transformation. 2019-02-14 Martin Liska <mliska@suse.cz> PR rtl-optimization/89242 * g++.dg/pr89242.C: New test. From-SVN: r268873
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dce.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/pr89242.C15
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c800ee1..fd554df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-14 Martin Liska <mliska@suse.cz>
+
+ PR rtl-optimization/89242
+ * dce.c (delete_unmarked_insns): Call free_dominance_info we
+ process a transformation.
+
2019-02-14 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/89314
diff --git a/gcc/dce.c b/gcc/dce.c
index cb18e815..8fb109c 100644
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -652,6 +652,7 @@ delete_unmarked_insns (void)
{
gcc_assert (can_alter_cfg);
delete_unreachable_blocks ();
+ free_dominance_info (CDI_DOMINATORS);
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7c2b71b..def998a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-14 Martin Liska <mliska@suse.cz>
+
+ PR rtl-optimization/89242
+ * g++.dg/pr89242.C: New test.
+
2019-02-14 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/89314
diff --git a/gcc/testsuite/g++.dg/pr89242.C b/gcc/testsuite/g++.dg/pr89242.C
new file mode 100644
index 0000000..a702fef
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr89242.C
@@ -0,0 +1,15 @@
+// { dg-do compile }
+// { dg-options "-fno-rerun-cse-after-loop -ftrapv -fno-tree-loop-optimize -fdelete-dead-exceptions -fno-forward-propagate -fnon-call-exceptions -O2" }
+
+void bar (int n, char *p)
+{
+ try
+ {
+ n++;
+ for (int i = 0; i < n - 1; i++)
+ p[i];
+ }
+ catch (...)
+ {}
+}
+