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.
This commit is contained in:
Nick Clifton
2005-10-11 11:16:17 +00:00
parent 1334d4d50c
commit 9497f5ac6b
43 changed files with 834 additions and 66 deletions

View File

@@ -940,7 +940,7 @@ macro_expr (const char *emsg, int idx, sb *in, int *val)
hold = input_line_pointer;
input_line_pointer = in->ptr + idx;
expression (&ex);
expression_and_evaluate (&ex);
idx = input_line_pointer - in->ptr;
input_line_pointer = hold;