path: root/include
diff options
authorH. Peter Anvin <hpa@zytor.com>2018-12-27 11:24:17 -0800
committerH. Peter Anvin <hpa@zytor.com>2018-12-27 11:24:17 -0800
commit4cf86ddde8cd8655819358ae88c1ff70a2a79713 (patch)
tree0fe2044908d377469021605f12b117dcfab81b19 /include
parent74246c499ea4313fb8837977dc0c135fc50567c0 (diff)
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 'include')
1 files changed, 1 insertions, 0 deletions
diff --git a/include/error.h b/include/error.h
index 477a26d7..433c0680 100644
--- a/include/error.h
+++ b/include/error.h
@@ -76,6 +76,7 @@ static inline vefunc nasm_set_verror(vefunc ve)
#define ERR_PANIC 0x00000007 /* internal error: panic instantly
* and dump core for reference */
#define ERR_MASK 0x00000007 /* mask off the above codes */
+#define ERR_UNDEAD 0x00000008 /* skip if we already have errors */
#define ERR_NOFILE 0x00000010 /* don't give source file name/line */
#define ERR_HERE 0x00000020 /* point to a specific source location */
#define ERR_USAGE 0x00000040 /* print a usage message */