PATCH: PR middle-end/48016: Inconsistency in non-local goto save area

H.J. Lu hongjiu.lu@intel.com
Wed Mar 16 17:17:00 GMT 2011


On Wed, Mar 16, 2011 at 10:09:44AM -0700, H.J. Lu wrote:
> Hi,
> 
> expand_function_start failed to properly store frame pointer for
> non-local goto when Pmode != ptr_mode.  OK for trunk?
  
Wrong patch.  Here is the correct mode. OK for trunk?

Thanks.


H.J.
---
diff --git a/gcc/ChangeLog.x32 b/gcc/ChangeLog.x32
index 3405300..52ff01d 100644
--- a/gcc/ChangeLog.x32
+++ b/gcc/ChangeLog.x32
@@ -1,3 +1,9 @@
+2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR middle-end/48016
+	* function.c (expand_function_start): Properly store frame
+	pointer for non-local goto.
+
 2011-03-12  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR target/48084
diff --git a/gcc/function.c b/gcc/function.c
index 1f7722c..ac6b267 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4762,7 +4762,7 @@ expand_function_start (tree subr)
 		       cfun->nonlocal_goto_save_area,
 		       integer_zero_node, NULL_TREE, NULL_TREE);
       r_save = expand_expr (t_save, NULL_RTX, VOIDmode, EXPAND_WRITE);
-      r_save = convert_memory_address (Pmode, r_save);
+      r_save = adjust_address (r_save, Pmode, 0);
 
       emit_move_insn (r_save, targetm.builtin_setjmp_frame_value ());
       update_nonlocal_goto_save_area ();



More information about the Gcc-patches mailing list