aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Bruel <christian.bruel@st.com>2015-06-19 08:58:22 +0200
committerChristian Bruel <chrbr@gcc.gnu.org>2015-06-19 08:58:22 +0200
commita19d9c69e41c29ee153e5adb5817b9bacadaa8b4 (patch)
treec2ea2a7e12df1fda81ce117d665d56358a1cc045
parent36f1dbb02fe5f99bc02730d8f265002994ddf7c7 (diff)
downloadgcc-a19d9c69e41c29ee153e5adb5817b9bacadaa8b4.zip
gcc-a19d9c69e41c29ee153e5adb5817b9bacadaa8b4.tar.gz
gcc-a19d9c69e41c29ee153e5adb5817b9bacadaa8b4.tar.bz2
re PR target/66541 (r224314 causes ICE in gcc.dg/torture/pr52429.c)
PR target/66541 PR target/52144 * config/arm/arm.c (arm_set_current_function): Handle explicit default options. From-SVN: r224638
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/arm/arm.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 25628fa..28494ff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-06-19 Christian Bruel <christian.bruel@st.com>
+
+ PR target/66541
+ PR target/52144
+ * config/arm/arm.c (arm_set_current_function): Handle
+ explicit default options.
+
2015-06-18 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*movsicc_noc_zext): New insn.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index d794fc0..e79a369 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;