c-typeck.c (build_external_ref): Don't call assemble_external.

2008-07-22  Rafael Avila de Espindola  <espindola@google.com>

       * c-typeck.c (build_external_ref): Don't call assemble_external.
       * final.c (output_operand): Call assemble_external.

From-SVN: r138057
This commit is contained in:
Rafael Avila de Espindola 2008-07-22 13:29:31 +00:00 committed by Rafael Espindola
parent 4a799ae7a6
commit 3571ae2e08
3 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2008-07-22 Rafael Avila de Espindola <espindola@google.com>
* c-typeck.c (build_external_ref): Don't call assemble_external.
* final.c (output_operand): Call assemble_external.
2008-07-21 DJ Delorie <dj@redhat.com>
* config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.

View File

@ -2191,8 +2191,6 @@ build_external_ref (tree id, int fun, location_t loc)
/* Recursive call does not count as usage. */
if (ref != current_function_decl)
{
if (!skip_evaluation)
assemble_external (ref);
TREE_USED (ref) = 1;
}

View File

@ -3344,6 +3344,14 @@ output_operand (rtx x, int code ATTRIBUTE_UNUSED)
gcc_assert (!x || !REG_P (x) || REGNO (x) < FIRST_PSEUDO_REGISTER);
PRINT_OPERAND (asm_out_file, x, code);
if (x && MEM_P (x) && GET_CODE (XEXP (x, 0)) == SYMBOL_REF)
{
tree t;
x = XEXP (x, 0);
t = SYMBOL_REF_DECL (x);
if (t)
assemble_external (t);
}
}
/* Print a memory reference operand for address X