aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorRafael Avila de Espindola <espindola@google.com>2008-07-22 13:29:31 +0000
committerRafael Espindola <espindola@gcc.gnu.org>2008-07-22 13:29:31 +0000
commit3571ae2e08289a7f84999a095a40923c2365259e (patch)
tree4f5e14aa862d2a03cd920142d392ac2c21a6b6a5 /gcc/final.c
parent4a799ae7a6714d267309dd89fbd291d51ed02b7d (diff)
downloadgcc-3571ae2e08289a7f84999a095a40923c2365259e.zip
gcc-3571ae2e08289a7f84999a095a40923c2365259e.tar.gz
gcc-3571ae2e08289a7f84999a095a40923c2365259e.tar.bz2
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
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/final.c b/gcc/final.c
index f27e430..787c43a 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -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