aboutsummaryrefslogtreecommitdiff
path: root/gas/cond.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2005-10-11 11:16:17 +0000
committerNick Clifton <nickc@redhat.com>2005-10-11 11:16:17 +0000
commit9497f5ac6bc10bdd65ea471787619bde1edca77d (patch)
tree7f36b3cb6f0d84b058dfba51242bd900edde9503 /gas/cond.c
parent1334d4d50c52bc295dace4982442369838f478b3 (diff)
downloadfsf-binutils-gdb-9497f5ac6bc10bdd65ea471787619bde1edca77d.zip
fsf-binutils-gdb-9497f5ac6bc10bdd65ea471787619bde1edca77d.tar.gz
fsf-binutils-gdb-9497f5ac6bc10bdd65ea471787619bde1edca77d.tar.bz2
This adjusts equate handling by
- allowing true forward references (which will always assume the referenced symbols have at the point of use) through the new .eqv pseudo-op and the new == operator - disallowing changing .equiv-generated equates (so that the protection this provides is both forward and backward) - snapshotting equates when their value gets changed so that previous uses don't get affected by the new value. - allowing expressions in places where absolute expressions (or register names) are needed which were not completely resolvable at the point of their definition but which are fully resolvable at the point of use In addition it fixes PR/288.
Diffstat (limited to 'gas/cond.c')
-rw-r--r--gas/cond.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gas/cond.c b/gas/cond.c
index 8cd98c2..e791b11 100644
--- a/gas/cond.c
+++ b/gas/cond.c
@@ -144,7 +144,7 @@ s_if (int arg)
}
else
{
- expression (&operand);
+ expression_and_evaluate (&operand);
if (operand.X_op != O_constant)
as_bad (_("non-constant expression in \".if\" statement"));
}
@@ -340,7 +340,7 @@ s_elseif (int arg)
/* Leading whitespace is part of operand. */
SKIP_WHITESPACE ();
- expression (&operand);
+ expression_and_evaluate (&operand);
if (operand.X_op != O_constant)
as_bad (_("non-constant expression in \".elseif\" statement"));