diff options
author | H. Peter Anvin <hpa@zytor.com> | 2018-12-27 11:24:17 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2018-12-27 11:24:17 -0800 |
commit | 4cf86ddde8cd8655819358ae88c1ff70a2a79713 (patch) | |
tree | 0fe2044908d377469021605f12b117dcfab81b19 /asm/labels.c | |
parent | 74246c499ea4313fb8837977dc0c135fc50567c0 (diff) | |
download | nasm-4cf86ddde8cd8655819358ae88c1ff70a2a79713.tar.gz |
BR 3392539: some errors can "cascade". Allow suppressing if dead.
In BR 3392539, the error:
helloW.s:18: error: label `rurt' changed during code generation
[-w+error=label-redef-late]
... occurs a number of times after we have already issued an
error. This is because the erroring instruction computes to a
different size during code generation; this causes each subsequent
label to cause a phase error.
The phase error simply doesn't make much sense to report: if we are
already committed to erroring out, it is more likely an error cascade
rather than an error in its own right, so just suppress it in that
case.
Reported-by: <russvz@comcast.net>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'asm/labels.c')
-rw-r--r-- | asm/labels.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/asm/labels.c b/asm/labels.c index 20107603..4e61fd22 100644 --- a/asm/labels.c +++ b/asm/labels.c @@ -529,7 +529,7 @@ void define_label(const char *label, int32_t segment, * As a special case, LBL_SPECIAL symbols are allowed to be changed * even during the last pass. */ - nasm_error(ERR_WARNING|WARN_LABEL_LATE, + nasm_error(ERR_WARNING|WARN_LABEL_LATE|ERR_UNDEAD, "label `%s' %s during code generation", lptr->defn.label, created ? "defined" : "changed"); } |