summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Crayne <chuck@thor.crayne.org>2008-06-04 15:53:21 -0700
committerCharles Crayne <chuck@thor.crayne.org>2008-06-04 15:53:21 -0700
commitcd3418016a2ff6e6de2c4d1c36d9ed8c489eceb2 (patch)
treed01e527faa6e321a5a5d1ca41cb43bdd9ccc55db
parent88c9e1f88cd1e67ad4fb2834f3cad6160d5a3fbb (diff)
downloadnasm-cd3418016a2ff6e6de2c4d1c36d9ed8c489eceb2.tar.gz
Remove EQU for critical expression list
Allow redefine_label to update segment as well as offset, thereby fixing bug which required EQU to be on the critical expression list.
-rw-r--r--labels.c2
-rw-r--r--parser.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/labels.c b/labels.c
index 8376b795..068d758e 100644
--- a/labels.c
+++ b/labels.c
@@ -187,7 +187,6 @@ void redefine_label(char *label, int32_t segment, int64_t offset, char *special,
* are even possible, nor whether they are checked somewhere else
*/
- (void)segment; /* Don't warn that this parameter is unused */
(void)special; /* Don't warn that this parameter is unused */
(void)is_norm; /* Don't warn that this parameter is unused */
(void)isextrn; /* Don't warn that this parameter is unused */
@@ -212,6 +211,7 @@ void redefine_label(char *label, int32_t segment, int64_t offset, char *special,
global_offset_changed |= (lptr->defn.offset != offset);
lptr->defn.offset = offset;
+ lptr->defn.segment = segment;
if (pass0 == 1) {
exi = !!(lptr->defn.is_global & GLOBAL_BIT);
diff --git a/parser.c b/parser.c
index 72cb1207..c188095d 100644
--- a/parser.c
+++ b/parser.c
@@ -322,7 +322,7 @@ restart_parse:
result->opcode == I_RESD || result->opcode == I_RESQ ||
result->opcode == I_REST || result->opcode == I_RESO ||
result->opcode == I_RESY ||
- result->opcode == I_EQU || result->opcode == I_INCBIN) {
+ result->opcode == I_INCBIN) {
critical = (pass0 < 2 ? 1 : 2);
} else