except.c (sjlj_emit_function_enter): Call assemble_external_libcall for eh_personalit...
authorJeffrey A Law <law@cygnus.com>
Thu, 17 May 2001 17:53:52 +0000 (17:53 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 17 May 2001 17:53:52 +0000 (11:53 -0600)
        * except.c (sjlj_emit_function_enter): Call assemble_external_libcall
        for eh_personality_libfunc.

From-SVN: r42216

gcc/ChangeLog
gcc/except.c

index f021be5cd4deab8076c6f385bcb3ebaa0cc833f5..a50be8d99ebb2d080eba269d92dc2ed8c4f13275 100644 (file)
@@ -1,3 +1,8 @@
+Thu May 17 11:54:50 2001  Jeffrey A Law  (law@cygnus.com)
+
+       * except.c (sjlj_emit_function_enter): Call assemble_external_libcall
+       for eh_personality_libfunc.
+
 Thu May 17 19:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * recog.c (validate_replace_rtx_1): Use "TO" mode if not VOIDmode
index b77713671497abcbd4ccab0e7f46e801dd4ff07b..35d76cb8a82f7300fa129a258278d3daa170b017 100644 (file)
@@ -2139,6 +2139,10 @@ sjlj_emit_function_enter (dispatch_label)
 
   start_sequence ();
 
+  /* We're storing this libcall's address into memory instead of
+     calling it directly.  Thus, we must call assemble_external_libcall
+     here, as we can not depend on emit_library_call to do it for us.  */
+  assemble_external_libcall (eh_personality_libfunc);
   mem = change_address (fc, Pmode,
                        plus_constant (XEXP (fc, 0), sjlj_fc_personality_ofs));
   emit_move_insn (mem, eh_personality_libfunc);