aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBrendan Kehoe <brendan@gcc.gnu.org>1996-12-11 19:30:15 -0500
committerBrendan Kehoe <brendan@gcc.gnu.org>1996-12-11 19:30:15 -0500
commit89418a92574448338464cb3503942a29a10e3eb8 (patch)
treebf4891714e3c1fe5897e68333ffd2765ff6128d6 /gcc
parent664041e68bccafd2a1983f8416b43f95843ec4d3 (diff)
downloadgcc-89418a92574448338464cb3503942a29a10e3eb8.zip
gcc-89418a92574448338464cb3503942a29a10e3eb8.tar.gz
gcc-89418a92574448338464cb3503942a29a10e3eb8.tar.bz2
toplev.c (rest_of_compilation): Make sure that the unwinder RTL is saved.
* toplev.c (rest_of_compilation): Make sure that the unwinder RTL is saved. From-SVN: r13289
Diffstat (limited to 'gcc')
-rw-r--r--gcc/toplev.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index a10f4d9..a0cfb4d 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -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 ();