Always do output_function_exception_table before assemble_end_function.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Sep 2010 21:45:00 +0000 (21:45 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Sep 2010 21:45:00 +0000 (21:45 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163974 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/final.c

index 3f027bd..3b2acce 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-07  Richard Henderson  <rth@redhat.com>
+
+       * final.c (rest_of_handle_final): Unconditionally do 
+       output_function_exception_table before assemble_end_function.
+
 2010-09-07  Jan Hubicka  <jh@suse.cz>
 
        * tree-inline.c (tree_inlinable_function_p): Do not test DECL_REPLACEABLE_P.
index 06ebc17..79cd85e 100644 (file)
@@ -4240,19 +4240,13 @@ rest_of_handle_final (void)
   final (get_insns (), asm_out_file, optimize);
   final_end_function ();
 
-#ifdef TARGET_UNWIND_INFO
-  /* ??? The IA-64 ".handlerdata" directive must be issued before
-     the ".endp" directive that closes the procedure descriptor.  */
+  /* The IA-64 ".handlerdata" directive must be issued before the ".endp"
+     directive that closes the procedure descriptor.  Similarly, for x64 SEH.
+     Otherwise it's not strictly necessary, but it doesn't hurt either.  */
   output_function_exception_table (fnname);
-#endif
 
   assemble_end_function (current_function_decl, fnname);
 
-#ifndef TARGET_UNWIND_INFO
-  /* Otherwise, it feels unclean to switch sections in the middle.  */
-  output_function_exception_table (fnname);
-#endif
-
   user_defined_section_attribute = false;
 
   /* Free up reg info memory.  */