diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2018-06-14 20:00:07 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2018-06-14 20:00:07 -0700 |
commit | 46c839a03ddb07dd7266e9b826a24eafa242dfbf (patch) | |
tree | 2a01c9954c373c94761e2ab8973e10d23907b0e6 | |
parent | af5f918a9235ec8a4ce72553141c06b9631fb550 (diff) | |
download | nasm-46c839a03ddb07dd7266e9b826a24eafa242dfbf.tar.gz |
labels: allocation of a segment number counts as a change
If we allocate a new segment number, that has to cause
global_offset_changed to be incremented. Thus, we should not update
lptr->defn.segment until that would ordinarily be done.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r-- | asm/labels.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/asm/labels.c b/asm/labels.c index ccdedace..88edc9ed 100644 --- a/asm/labels.c +++ b/asm/labels.c @@ -424,11 +424,8 @@ void define_label(const char *label, int32_t segment, nasm_error(ERR_WARNING, "label `%s' defined on pass two", label); } - if (!segment) { - segment = lptr->defn.segment; - if (!segment) - segment = lptr->defn.segment = seg_alloc(); - } + if (!segment) + segment = lptr->defn.segment ? lptr->defn.segment : seg_alloc(); if (lptr->defn.defined || lptr->defn.type == LBL_BACKEND) { /* We have seen this on at least one previous pass */ |