[PATCH] Fix breakage caused by my last PR43293 patch (PR bootstrap/43511)

Jakub Jelinek jakub@redhat.com
Thu Mar 25 13:34:00 GMT 2010


Hi!

My patch to provide unwind info for i?86 pc thunks even with
-fno-dwarf2-cfi-asm broke darwin bootstrap.
The following patch fixes it by making sure function_section of the
artificial decl to which dwarf2out_begin_prologue switches is the
same as the code has switched to manually.  For non-darwin we
set either unique_section_name for the decl, or just use text_section,
so the only problem would be if the last routine emitted before the pc
thunks started with cold block with hot/cold partitioning.
This is normally cleared in assemble_function_start, but we don't call
that for pc thunks (maybe we should eventually).

Committing to trunk as obvious.

2010-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43511
	* config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
	Clear first_function_block_is_cold.

--- gcc/config/i386/i386.c.jj	2010-03-25 00:26:23.000000000 +0100
+++ gcc/config/i386/i386.c	2010-03-25 13:00:35.000000000 +0100
@@ -7614,6 +7614,7 @@ ix86_code_end (void)
 	  assemble_name (asm_out_file, name);
 	  fputs ("\n", asm_out_file);
 	  ASM_OUTPUT_LABEL (asm_out_file, name);
+	  DECL_WEAK (decl) = 1;
 	}
       else
 #endif
@@ -7639,6 +7640,7 @@ ix86_code_end (void)
       DECL_INITIAL (decl) = make_node (BLOCK);
       current_function_decl = decl;
       init_function_start (decl);
+      first_function_block_is_cold = false;
       /* Make sure unwind info is emitted for the thunk if needed.  */
       final_start_function (emit_barrier (), asm_out_file, 1);
 

	Jakub



More information about the Gcc-patches mailing list