diff options
author | Alan Modra <amodra@gmail.com> | 2001-05-25 00:01:30 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-05-25 00:01:30 +0000 |
commit | 40e3ba9bb7d85d35590a8828a42b3450e0dcb032 (patch) | |
tree | 46c0bb25ffc20aee7a783dbf0dd707e7c9710ed7 /gas/read.c | |
parent | 400071f14b469889399c792d701dc122d1f3d5cc (diff) | |
download | fsf-binutils-gdb-40e3ba9bb7d85d35590a8828a42b3450e0dcb032.zip fsf-binutils-gdb-40e3ba9bb7d85d35590a8828a42b3450e0dcb032.tar.gz fsf-binutils-gdb-40e3ba9bb7d85d35590a8828a42b3450e0dcb032.tar.bz2 |
* expr.c (expr): Set return value to absolute_section for
subtractive operations on symbols within a segment.
* read.c (pseudo_set): Set segment for complex expressions.
Diffstat (limited to 'gas/read.c')
-rw-r--r-- | gas/read.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -3151,6 +3151,7 @@ pseudo_set (symbolP) symbolS *symbolP; { expressionS exp; + segT seg; #if (defined (OBJ_AOUT) || defined (OBJ_BOUT)) && ! defined (BFD_ASSEMBLER) int ext; #endif /* OBJ_AOUT or OBJ_BOUT */ @@ -3160,7 +3161,7 @@ pseudo_set (symbolP) ext = S_IS_EXTERNAL (symbolP); #endif /* OBJ_AOUT or OBJ_BOUT */ - (void) expression (&exp); + seg = expression (&exp); if (exp.X_op == O_illegal) as_bad (_("illegal expression; zero assumed")); @@ -3236,9 +3237,9 @@ pseudo_set (symbolP) break; default: - /* The value is some complex expression. - FIXME: Should we set the segment to anything? */ + /* The value is some complex expression. */ symbol_set_value_expression (symbolP, &exp); + S_SET_SEGMENT (symbolP, seg); break; } } |