re PR libstdc++/5625 ([mips] exception unwinding creates invalid pointer on mips)
authorJames E Wilson <wilson@specifixinc.com>
Mon, 9 Feb 2004 21:20:33 +0000 (21:20 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Mon, 9 Feb 2004 21:20:33 +0000 (13:20 -0800)
PR libstdc++/5625
* libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
__builtin_extend_pointer.

From-SVN: r77555

libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/eh_personality.cc

index 35cfcc3..e18aff6 100644 (file)
@@ -1,3 +1,9 @@
+2004-02-09  James E Wilson  <wilson@specifixinc.com>
+
+       PR libstdc++/5625
+       * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
+       __builtin_extend_pointer.
+
 2004-02-09  Paolo Carlini  <pcarlini@suse.de>
 
        PR libstdc++/14072
index 9cf96f4..4d5ae57 100644 (file)
@@ -443,8 +443,10 @@ PERSONALITY_FUNCTION (int version,
        }
     }
 
+  /* For targets with pointers smaller than the word size, we must extend the
+     pointer, and this extension is target dependent.  */
   _Unwind_SetGR (context, __builtin_eh_return_data_regno (0),
-                (_Unwind_Ptr) &xh->unwindHeader);
+                __builtin_extend_pointer (&xh->unwindHeader));
   _Unwind_SetGR (context, __builtin_eh_return_data_regno (1),
                 handler_switch_value);
   _Unwind_SetIP (context, landing_pad);