diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-02-24 19:54:37 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-02-24 19:54:37 +0100 |
commit | cdebbc6d8dcade8634ca18060205f2065bb9973f (patch) | |
tree | f6aba7dda6a5cd0c643a579f660e3084ce4813b0 /gcc/target-globals.c | |
parent | 9bcc87ea41b081421d5b2205a27704308ff3f835 (diff) | |
download | gcc-cdebbc6d8dcade8634ca18060205f2065bb9973f.zip gcc-cdebbc6d8dcade8634ca18060205f2065bb9973f.tar.gz gcc-cdebbc6d8dcade8634ca18060205f2065bb9973f.tar.bz2 |
re PR target/52555 (ICE unrecognizable insn with -ffast-math and __attribute__((optimize(xx))))
PR target/52555
* target-globals.c (save_target_globals): For init_reg_sets and
target_reinit remporarily set this_fn_optabs to this_target_optabs.
From-SVN: r196245
Diffstat (limited to 'gcc/target-globals.c')
-rw-r--r-- | gcc/target-globals.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/target-globals.c b/gcc/target-globals.c index d72495d..65ccb8a 100644 --- a/gcc/target-globals.c +++ b/gcc/target-globals.c @@ -67,6 +67,7 @@ struct target_globals * save_target_globals (void) { struct target_globals *g; + struct target_optabs *saved_this_fn_optabs = this_fn_optabs; g = ggc_alloc_target_globals (); g->flag_state = XCNEW (struct target_flag_state); @@ -86,8 +87,10 @@ save_target_globals (void) g->bb_reorder = XCNEW (struct target_bb_reorder); g->lower_subreg = XCNEW (struct target_lower_subreg); restore_target_globals (g); + this_fn_optabs = this_target_optabs; init_reg_sets (); target_reinit (); + this_fn_optabs = saved_this_fn_optabs; return g; } |