OSDN Git Service

* toplev.c (rest_of_compilation): Make sure that the unwinder RTL
authorbrendan <brendan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Dec 1996 00:30:15 +0000 (00:30 +0000)
committerbrendan <brendan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Dec 1996 00:30:15 +0000 (00:30 +0000)
is saved.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13289 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/toplev.c

index a10f4d9..a0cfb4d 100644 (file)
@@ -2954,12 +2954,9 @@ rest_of_compilation (decl)
       goto exit_rest_of_compilation;
     }
 
-  /* From now on, allocate rtl in current_obstack, not in saveable_obstack.
-     Note that that may have been done above, in save_for_inline_copying.
-     The call to resume_temporary_allocation near the end of this function
-     goes back to the usual state of affairs.  */
-
-  rtl_in_current_obstack ();
+  /* Add an unwinder for exception handling, if needed.
+     This must be done before we finalize PIC code.  */
+  emit_unwinder ();
 
 #ifdef FINALIZE_PIC
   /* If we are doing position-independent code generation, now
@@ -2970,8 +2967,14 @@ rest_of_compilation (decl)
     FINALIZE_PIC;
 #endif
 
-  /* Add an unwinder for exception handling, if needed.  */
-  emit_unwinder ();
+  /* From now on, allocate rtl in current_obstack, not in saveable_obstack.
+     Note that that may have been done above, in save_for_inline_copying.
+     The call to resume_temporary_allocation near the end of this function
+     goes back to the usual state of affairs.  This must be done after
+     we've built up any unwinders for exception handling, and done
+     the FINALIZE_PIC work, if necessary.  */
+
+  rtl_in_current_obstack ();
 
   insns = get_insns ();