diff options
Diffstat (limited to 'gas/expr.c')
-rw-r--r-- | gas/expr.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gas/expr.c b/gas/expr.c index f050b17ccb..620fdce31d 100644 --- a/gas/expr.c +++ b/gas/expr.c @@ -1373,8 +1373,13 @@ operand (expressionS *expressionP, enum expr_mode mode) if (expressionP->X_add_symbol) symbol_mark_used (expressionP->X_add_symbol); - expressionP->X_add_symbol = symbol_clone_if_forward_ref (expressionP->X_add_symbol); - expressionP->X_op_symbol = symbol_clone_if_forward_ref (expressionP->X_op_symbol); + if (mode != expr_defer) + { + expressionP->X_add_symbol + = symbol_clone_if_forward_ref (expressionP->X_add_symbol); + expressionP->X_op_symbol + = symbol_clone_if_forward_ref (expressionP->X_op_symbol); + } switch (expressionP->X_op) { |