aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2015-01-16 15:38:21 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2015-01-16 15:38:21 +0000
commited22611ae503ebea38011dcfc2fe75ebab97dcfc (patch)
tree7cc3a693a48ec6e842cfcfe51dd95bb5b08a4df7 /gcc
parentbb93f35da1612940266f5d159b6cc5a3e54fca14 (diff)
downloadgcc-ed22611ae503ebea38011dcfc2fe75ebab97dcfc.zip
gcc-ed22611ae503ebea38011dcfc2fe75ebab97dcfc.tar.gz
gcc-ed22611ae503ebea38011dcfc2fe75ebab97dcfc.tar.bz2
re PR middle-end/64353 (ICE: in execute_todo, at passes.c:1986)
gcc/ PR middle-end/64353 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for virtuals on start. gcc/testsuite/ PR middle-end/64353 * g++.dg/pr64353.C: New. From-SVN: r219748
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/pr64353.C15
-rw-r--r--gcc/tree-cfg.c2
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a28a578..b77b827 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ PR middle-end/64353
+ * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
+ virtuals on start.
+
2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
* config/arm/cortex-a57.md: Remove duplicate of file accidentally
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 231b947..57e4936 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ PR middle-end/64353
+ * g++.dg/pr64353.C: New.
+
2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/64263
diff --git a/gcc/testsuite/g++.dg/pr64353.C b/gcc/testsuite/g++.dg/pr64353.C
new file mode 100644
index 0000000..7859918
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr64353.C
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+class C
+{
+ int y, x;
+ void i ();
+ bool __attribute__((const)) xx () { return x; }
+};
+
+void C::i ()
+{
+ if (xx ())
+ x = 1;
+}
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 006bc08..2e23553 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -8754,7 +8754,7 @@ const pass_data pass_data_fixup_cfg =
PROP_cfg, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
- 0, /* todo_flags_start */
+ TODO_update_ssa_only_virtuals, /* todo_flags_start */
0, /* todo_flags_finish */
};