diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2015-01-16 15:38:21 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2015-01-16 15:38:21 +0000 |
commit | ed22611ae503ebea38011dcfc2fe75ebab97dcfc (patch) | |
tree | 7cc3a693a48ec6e842cfcfe51dd95bb5b08a4df7 | |
parent | bb93f35da1612940266f5d159b6cc5a3e54fca14 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pr64353.C | 15 | ||||
-rw-r--r-- | gcc/tree-cfg.c | 2 |
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 */ }; |