summaryrefslogtreecommitdiff
path: root/vere/ext/nasm/asm/warnings.c
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-10-05 21:56:51 +0700
committerpolwex <polwex@sortug.com>2025-10-05 21:56:51 +0700
commitfcedfddf00b3f994e4f4e40332ac7fc192c63244 (patch)
tree51d38e62c7bdfcc5f9a5e9435fe820c93cfc9a3d /vere/ext/nasm/asm/warnings.c
claude is gud
Diffstat (limited to 'vere/ext/nasm/asm/warnings.c')
-rw-r--r--vere/ext/nasm/asm/warnings.c241
1 files changed, 241 insertions, 0 deletions
diff --git a/vere/ext/nasm/asm/warnings.c b/vere/ext/nasm/asm/warnings.c
new file mode 100644
index 0000000..f825e0c
--- /dev/null
+++ b/vere/ext/nasm/asm/warnings.c
@@ -0,0 +1,241 @@
+#include "error.h"
+
+const char * const warning_name[53] = {
+ NULL,
+ "db-empty",
+ "ea-absolute",
+ "ea-dispsize",
+ "float-denorm",
+ "float-overflow",
+ "float-toolong",
+ "float-underflow",
+ "forward",
+ "label-orphan",
+ "label-redef",
+ "label-redef-late",
+ "number-overflow",
+ "obsolete-nop",
+ "obsolete-removed",
+ "obsolete-valid",
+ "phase",
+ "pp-else-elif",
+ "pp-else-else",
+ "pp-empty-braces",
+ "pp-environment",
+ "pp-macro-def-case-single",
+ "pp-macro-def-greedy-single",
+ "pp-macro-def-param-single",
+ "pp-macro-defaults",
+ "pp-macro-params-legacy",
+ "pp-macro-params-multi",
+ "pp-macro-params-single",
+ "pp-macro-redef-multi",
+ "pp-open-braces",
+ "pp-open-brackets",
+ "pp-open-string",
+ "pp-rep-negative",
+ "pp-sel-range",
+ "pp-trailing",
+ "pragma-bad",
+ "pragma-empty",
+ "pragma-na",
+ "pragma-unknown",
+ "prefix-bnd",
+ "prefix-hle",
+ "prefix-lock",
+ "prefix-opsize",
+ "prefix-seg",
+ "ptr",
+ "regsize",
+ "unknown-warning",
+ "user",
+ "warn-stack-empty",
+ "zeroing",
+ "zext-reloc",
+ "other",
+ "all"
+};
+
+const struct warning_alias warning_alias[68] = {
+ { "all", WARN_IDX_ALL },
+ { "bad-pragma", WARN_IDX_PRAGMA_BAD },
+ { "bnd", WARN_IDX_PREFIX_BND },
+ { "db-empty", WARN_IDX_DB_EMPTY },
+ { "ea-absolute", WARN_IDX_EA_ABSOLUTE },
+ { "ea-dispsize", WARN_IDX_EA_DISPSIZE },
+ { "environment", WARN_IDX_PP_ENVIRONMENT },
+ { "float-denorm", WARN_IDX_FLOAT_DENORM },
+ { "float-overflow", WARN_IDX_FLOAT_OVERFLOW },
+ { "float-toolong", WARN_IDX_FLOAT_TOOLONG },
+ { "float-underflow", WARN_IDX_FLOAT_UNDERFLOW },
+ { "forward", WARN_IDX_FORWARD },
+ { "hle", WARN_IDX_PREFIX_HLE },
+ { "label-orphan", WARN_IDX_LABEL_ORPHAN },
+ { "label-redef", WARN_IDX_LABEL_REDEF },
+ { "label-redef-late", WARN_IDX_LABEL_REDEF_LATE },
+ { "lock", WARN_IDX_PREFIX_LOCK },
+ { "macro-def-case-single", WARN_IDX_PP_MACRO_DEF_CASE_SINGLE },
+ { "macro-def-greedy-single", WARN_IDX_PP_MACRO_DEF_GREEDY_SINGLE },
+ { "macro-def-param-single", WARN_IDX_PP_MACRO_DEF_PARAM_SINGLE },
+ { "macro-defaults", WARN_IDX_PP_MACRO_DEFAULTS },
+ { "macro-params-legacy", WARN_IDX_PP_MACRO_PARAMS_LEGACY },
+ { "macro-params-multi", WARN_IDX_PP_MACRO_PARAMS_MULTI },
+ { "macro-params-single", WARN_IDX_PP_MACRO_PARAMS_SINGLE },
+ { "negative-rep", WARN_IDX_PP_REP_NEGATIVE },
+ { "not-my-pragma", WARN_IDX_PRAGMA_NA },
+ { "number-overflow", WARN_IDX_NUMBER_OVERFLOW },
+ { "obsolete-nop", WARN_IDX_OBSOLETE_NOP },
+ { "obsolete-removed", WARN_IDX_OBSOLETE_REMOVED },
+ { "obsolete-valid", WARN_IDX_OBSOLETE_VALID },
+ { "orphan-labels", WARN_IDX_LABEL_ORPHAN },
+ { "other", WARN_IDX_OTHER },
+ { "phase", WARN_IDX_PHASE },
+ { "pp-else-elif", WARN_IDX_PP_ELSE_ELIF },
+ { "pp-else-else", WARN_IDX_PP_ELSE_ELSE },
+ { "pp-empty-braces", WARN_IDX_PP_EMPTY_BRACES },
+ { "pp-environment", WARN_IDX_PP_ENVIRONMENT },
+ { "pp-macro-def-case-single", WARN_IDX_PP_MACRO_DEF_CASE_SINGLE },
+ { "pp-macro-def-greedy-single", WARN_IDX_PP_MACRO_DEF_GREEDY_SINGLE },
+ { "pp-macro-def-param-single", WARN_IDX_PP_MACRO_DEF_PARAM_SINGLE },
+ { "pp-macro-defaults", WARN_IDX_PP_MACRO_DEFAULTS },
+ { "pp-macro-params-legacy", WARN_IDX_PP_MACRO_PARAMS_LEGACY },
+ { "pp-macro-params-multi", WARN_IDX_PP_MACRO_PARAMS_MULTI },
+ { "pp-macro-params-single", WARN_IDX_PP_MACRO_PARAMS_SINGLE },
+ { "pp-macro-redef-multi", WARN_IDX_PP_MACRO_REDEF_MULTI },
+ { "pp-open-braces", WARN_IDX_PP_OPEN_BRACES },
+ { "pp-open-brackets", WARN_IDX_PP_OPEN_BRACKETS },
+ { "pp-open-string", WARN_IDX_PP_OPEN_STRING },
+ { "pp-rep-negative", WARN_IDX_PP_REP_NEGATIVE },
+ { "pp-sel-range", WARN_IDX_PP_SEL_RANGE },
+ { "pp-trailing", WARN_IDX_PP_TRAILING },
+ { "pragma-bad", WARN_IDX_PRAGMA_BAD },
+ { "pragma-empty", WARN_IDX_PRAGMA_EMPTY },
+ { "pragma-na", WARN_IDX_PRAGMA_NA },
+ { "pragma-unknown", WARN_IDX_PRAGMA_UNKNOWN },
+ { "prefix-bnd", WARN_IDX_PREFIX_BND },
+ { "prefix-hle", WARN_IDX_PREFIX_HLE },
+ { "prefix-lock", WARN_IDX_PREFIX_LOCK },
+ { "prefix-opsize", WARN_IDX_PREFIX_OPSIZE },
+ { "prefix-seg", WARN_IDX_PREFIX_SEG },
+ { "ptr", WARN_IDX_PTR },
+ { "regsize", WARN_IDX_REGSIZE },
+ { "unknown-pragma", WARN_IDX_PRAGMA_UNKNOWN },
+ { "unknown-warning", WARN_IDX_UNKNOWN_WARNING },
+ { "user", WARN_IDX_USER },
+ { "warn-stack-empty", WARN_IDX_WARN_STACK_EMPTY },
+ { "zeroing", WARN_IDX_ZEROING },
+ { "zext-reloc", WARN_IDX_ZEXT_RELOC }
+};
+
+const char * const warning_help[53] = {
+ NULL,
+ "no operand for data declaration",
+ "absolute address cannot be RIP-relative",
+ "displacement size ignored on absolute address",
+ "floating point denormal",
+ "floating point overflow",
+ "too many digits in floating-point number",
+ "floating point underflow",
+ "forward reference may have unpredictable results",
+ "labels alone on lines without trailing `:\'",
+ "label redefined to an identical value",
+ "label (re)defined during code generation",
+ "numeric constant does not fit",
+ "instruction obsolete and is a noop on the target CPU",
+ "instruction obsolete and removed on the target CPU",
+ "instruction obsolete but valid on the target CPU",
+ "phase error during stabilization",
+ "%elif after %else",
+ "%else after %else",
+ "empty %{} construct",
+ "nonexistent environment variable",
+ "single-line macro defined both case sensitive and insensitive",
+ "single-line macro",
+ "single-line macro defined with and without parameters",
+ "macros with more default than optional parameters",
+ "improperly calling multi-line macro for legacy support",
+ "multi-line macro calls with wrong parameter count",
+ "single-line macro calls with wrong parameter count",
+ "redefining multi-line macro",
+ "unterminated %{...}",
+ "unterminated %[...]",
+ "unterminated string",
+ "regative %rep count",
+ "%sel() argument out of range",
+ "trailing garbage ignored",
+ "malformed %pragma",
+ "empty %pragma directive",
+ "%pragma not applicable to this compilation",
+ "unknown %pragma facility or directive",
+ "invalid BND prefix",
+ "invalid HLE prefix",
+ "LOCK prefix on unlockable instructions",
+ "invalid operand size prefix",
+ "segment prefix ignored in 64-bit mode",
+ "non-NASM keyword used in other assemblers",
+ "register size specification ignored",
+ "unknown warning in -W/-w or warning directive",
+ "%warning directives",
+ "warning stack empty",
+ "RESx in initialized section becomes zero",
+ "relocation zero-extended to match output format",
+ "any warning not specifically mentioned above",
+ "all possible warnings"
+};
+
+const uint8_t warning_default[52] = {
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_OFF,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_OFF,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_OFF,
+ WARN_INIT_ERR,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_OFF,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ERR,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_OFF,
+ WARN_INIT_OFF,
+ WARN_INIT_OFF,
+ WARN_INIT_OFF,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_OFF,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON,
+ WARN_INIT_ON
+};
+
+uint8_t warning_state[52]; /* Current state */