sparc.c (sparc_frame_pointer_required): Return true if the function receives nonlocal...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 27 Jun 2011 11:07:55 +0000 (11:07 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 27 Jun 2011 11:07:55 +0000 (11:07 +0000)
* config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
the function receives nonlocal gotos.

From-SVN: r175477

gcc/ChangeLog
gcc/config/sparc/sparc.c

index b6e12f14b3a408725505f107acf0d37b287ed75d..ba26774f152ad8745e67d6e361b153972b5fcf8e 100644 (file)
@@ -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
index c5f159a05ac089336edebfb097fe4ac2293cc3ba..89e09d6726916222f10acfc50c165fbd6c43392f 100644 (file)
@@ -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;