diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 25628faad67..28494ffebaa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-06-19 Christian Bruel + + PR target/66541 + PR target/52144 + * config/arm/arm.c (arm_set_current_function): Handle + explicit default options. + 2015-06-18 Uros Bizjak * config/i386/i386.md (*movsicc_noc_zext): New insn. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index d794fc0eb80..e79a36939d0 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -29351,9 +29351,9 @@ arm_set_current_function (tree fndecl) arm_previous_fndecl = fndecl; if (old_tree == new_tree) - ; + return; - else if (new_tree) + if (new_tree && new_tree != target_option_default_node) { cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree)); @@ -29365,7 +29365,7 @@ arm_set_current_function (tree fndecl) = save_target_globals_default_opts (); } - else if (old_tree) + else if (old_tree && old_tree != target_option_default_node) { new_tree = target_option_current_node;