aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2011-06-27 11:07:55 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-06-27 11:07:55 +0000
commit157b930011390a269e71c22d51d511f91a03e6e5 (patch)
tree71a4d69aabfa06738121d0327a6ca358210af261 /gcc
parenta034d4bcdbb6c4023f6048390a73eef594ee7739 (diff)
downloadgcc-157b930011390a269e71c22d51d511f91a03e6e5.zip
gcc-157b930011390a269e71c22d51d511f91a03e6e5.tar.gz
gcc-157b930011390a269e71c22d51d511f91a03e6e5.tar.bz2
sparc.c (sparc_frame_pointer_required): Return true if the function receives nonlocal gotos.
* config/sparc/sparc.c (sparc_frame_pointer_required): Return true if the function receives nonlocal gotos. From-SVN: r175477
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sparc/sparc.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6e12f1..ba26774 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
+ the function receives nonlocal gotos.
+
2011-06-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49536
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index c5f159a..89e09d6 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -10153,6 +10153,11 @@ sparc_frame_pointer_required (void)
if (cfun->calls_alloca)
return true;
+ /* If the function receives nonlocal gotos, it needs to save the frame
+ pointer in the nonlocal_goto_save_area object. */
+ if (cfun->has_nonlocal_label)
+ return true;
+
/* In flat mode, that's it. */
if (TARGET_FLAT)
return false;