On Mon, Mar 26, 2012 at 1:27 AM, Steven Bosscher <stevenb....@gmail.com> wrote: > Hello, > > 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?) Thanks, Richard. > Ciao! > Steven > > * 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.