On Mon, Mar 26, 2012 at 1:27 AM, Steven Bosscher <stevenb....@gmail.com> wrote:
> This patch removes all calls to assemble_external from places other
> than final.c and MI-thunk generators.
> This is step 2 toward addressing PR17982 on the trunk for GCC 4.8. The
> next, and final, step will be to change pending_assemble_externals to
> pending_assemble_visibility, and fold assemble_external_real() back
> into assemble_external.
> Bootstrapped & tested all default languages on
> x86_64-unknown-linux-gnu and on powerpc64-unknown-linux-gnu.
> Also cross-built c and c++ to mips-elf and tested on mips-sim
> (mips-elf was the only target I could find that really emits something
> for its ASM_OUTPUT_EXTERNAL target macro and has a sim in gdb. I
> hard-coded mips_output_external, by replacing "if
> (!TARGET_EXPLICIT_RELOCS && ..." with "if (1 && ...").
> OK for trunk?
Ok. (I think the remaining TREE_USED sets look dubious and may not
be needed, too?)
> * toplev.c (check_global_declaration_1): Do not call assemble_external.
> * expr.c (emit_block_move_libcall_fn): Likewise.
> (clear_storage_libcall_fn): Likewise.
> (expand_expr_addr_expr_1): Likewise.
> (expand_expr_real_1): Likewise.
> * calls.c (rtx_for_function_call): Likewise.