Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 1 | #include "error.h" |
| 2 | |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 3 | const char * const warning_name[36] = { |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 4 | NULL, |
| 5 | "bnd", |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 6 | "db-empty", |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 7 | "environment", |
| 8 | "float-denorm", |
| 9 | "float-overflow", |
| 10 | "float-toolong", |
| 11 | "float-underflow", |
| 12 | "hle", |
| 13 | "label-orphan", |
| 14 | "label-redef", |
| 15 | "label-redef-late", |
| 16 | "lock", |
| 17 | "macro-defaults", |
| 18 | "macro-params-legacy", |
| 19 | "macro-params-multi", |
| 20 | "macro-params-single", |
| 21 | "negative-rep", |
| 22 | "number-overflow", |
| 23 | "obsolete-nop", |
| 24 | "obsolete-removed", |
| 25 | "obsolete-valid", |
| 26 | "phase", |
| 27 | "pragma-bad", |
| 28 | "pragma-empty", |
| 29 | "pragma-na", |
| 30 | "pragma-unknown", |
| 31 | "ptr", |
| 32 | "regsize", |
| 33 | "unknown-warning", |
| 34 | "user", |
| 35 | "warn-stack-empty", |
| 36 | "zeroing", |
| 37 | "zext-reloc", |
| 38 | "other", |
| 39 | "all" |
| 40 | }; |
| 41 | |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 42 | const struct warning_alias warning_alias[39] = { |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 43 | { "all", WARN_IDX_ALL }, |
| 44 | { "bad-pragma", WARN_IDX_PRAGMA_BAD }, |
| 45 | { "bnd", WARN_IDX_BND }, |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 46 | { "db-empty", WARN_IDX_DB_EMPTY }, |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 47 | { "environment", WARN_IDX_ENVIRONMENT }, |
| 48 | { "float-denorm", WARN_IDX_FLOAT_DENORM }, |
| 49 | { "float-overflow", WARN_IDX_FLOAT_OVERFLOW }, |
| 50 | { "float-toolong", WARN_IDX_FLOAT_TOOLONG }, |
| 51 | { "float-underflow", WARN_IDX_FLOAT_UNDERFLOW }, |
| 52 | { "hle", WARN_IDX_HLE }, |
| 53 | { "label-orphan", WARN_IDX_LABEL_ORPHAN }, |
| 54 | { "label-redef", WARN_IDX_LABEL_REDEF }, |
| 55 | { "label-redef-late", WARN_IDX_LABEL_REDEF_LATE }, |
| 56 | { "lock", WARN_IDX_LOCK }, |
| 57 | { "macro-defaults", WARN_IDX_MACRO_DEFAULTS }, |
| 58 | { "macro-params-legacy", WARN_IDX_MACRO_PARAMS_LEGACY }, |
| 59 | { "macro-params-multi", WARN_IDX_MACRO_PARAMS_MULTI }, |
| 60 | { "macro-params-single", WARN_IDX_MACRO_PARAMS_SINGLE }, |
| 61 | { "negative-rep", WARN_IDX_NEGATIVE_REP }, |
| 62 | { "not-my-pragma", WARN_IDX_PRAGMA_NA }, |
| 63 | { "number-overflow", WARN_IDX_NUMBER_OVERFLOW }, |
| 64 | { "obsolete-nop", WARN_IDX_OBSOLETE_NOP }, |
| 65 | { "obsolete-removed", WARN_IDX_OBSOLETE_REMOVED }, |
| 66 | { "obsolete-valid", WARN_IDX_OBSOLETE_VALID }, |
| 67 | { "orphan-labels", WARN_IDX_LABEL_ORPHAN }, |
| 68 | { "other", WARN_IDX_OTHER }, |
| 69 | { "phase", WARN_IDX_PHASE }, |
| 70 | { "pragma-bad", WARN_IDX_PRAGMA_BAD }, |
| 71 | { "pragma-empty", WARN_IDX_PRAGMA_EMPTY }, |
| 72 | { "pragma-na", WARN_IDX_PRAGMA_NA }, |
| 73 | { "pragma-unknown", WARN_IDX_PRAGMA_UNKNOWN }, |
| 74 | { "ptr", WARN_IDX_PTR }, |
| 75 | { "regsize", WARN_IDX_REGSIZE }, |
| 76 | { "unknown-pragma", WARN_IDX_PRAGMA_UNKNOWN }, |
| 77 | { "unknown-warning", WARN_IDX_UNKNOWN_WARNING }, |
| 78 | { "user", WARN_IDX_USER }, |
| 79 | { "warn-stack-empty", WARN_IDX_WARN_STACK_EMPTY }, |
| 80 | { "zeroing", WARN_IDX_ZEROING }, |
| 81 | { "zext-reloc", WARN_IDX_ZEXT_RELOC } |
| 82 | }; |
| 83 | |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 84 | const char * const warning_help[36] = { |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 85 | NULL, |
| 86 | "invalid BND prefixes", |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 87 | "no operand for data declaration", |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 88 | "nonexistent environment variable", |
| 89 | "floating point denormal", |
| 90 | "floating point overflow", |
| 91 | "too many digits in floating-point number", |
| 92 | "floating point underflow", |
| 93 | "invalid HLE prefixes", |
| 94 | "labels alone on lines without trailing `:\'", |
| 95 | "label redefined to an identical value", |
| 96 | "label (re)defined during code generation", |
| 97 | "LOCK prefix on unlockable instructions", |
| 98 | "macros with more default than optional parameters", |
| 99 | "improperly calling multi-line macro for legacy support", |
| 100 | "multi-line macro calls with wrong parameter count", |
| 101 | "single-line macro calls with wrong parameter count", |
| 102 | "regative %rep count", |
| 103 | "numeric constant does not fit", |
| 104 | "instruction obsolete and is a noop on the target CPU", |
| 105 | "instruction obsolete and removed on the target CPU", |
| 106 | "instruction obsolete but valid on the target CPU", |
| 107 | "phase error during stabilization", |
| 108 | "malformed %pragma", |
| 109 | "empty %pragma directive", |
| 110 | "%pragma not applicable to this compilation", |
| 111 | "unknown %pragma facility or directive", |
| 112 | "non-NASM keyword used in other assemblers", |
| 113 | "register size specification ignored", |
| 114 | "unknown warning in -W/-w or warning directive", |
| 115 | "%warning directives", |
| 116 | "warning stack empty", |
| 117 | "RESx in initialized section becomes zero", |
| 118 | "relocation zero-extended to match output format", |
| 119 | "any warning not specifially mentioned above", |
| 120 | "all possible warnings" |
| 121 | }; |
| 122 | |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 123 | const uint8_t warning_default[35] = { |
| 124 | WARN_INIT_ON, |
Dale Curtis | e293814 | 2020-06-29 15:29:48 -0700 | [diff] [blame] | 125 | WARN_INIT_ON, |
| 126 | WARN_INIT_ON, |
| 127 | WARN_INIT_ON, |
| 128 | WARN_INIT_OFF, |
| 129 | WARN_INIT_ON, |
| 130 | WARN_INIT_ON, |
| 131 | WARN_INIT_OFF, |
| 132 | WARN_INIT_ON, |
| 133 | WARN_INIT_ON, |
| 134 | WARN_INIT_OFF, |
| 135 | WARN_INIT_ERR, |
| 136 | WARN_INIT_ON, |
| 137 | WARN_INIT_ON, |
| 138 | WARN_INIT_ON, |
| 139 | WARN_INIT_ON, |
| 140 | WARN_INIT_ON, |
| 141 | WARN_INIT_ON, |
| 142 | WARN_INIT_ON, |
| 143 | WARN_INIT_ON, |
| 144 | WARN_INIT_ON, |
| 145 | WARN_INIT_ON, |
| 146 | WARN_INIT_OFF, |
| 147 | WARN_INIT_OFF, |
| 148 | WARN_INIT_OFF, |
| 149 | WARN_INIT_OFF, |
| 150 | WARN_INIT_OFF, |
| 151 | WARN_INIT_ON, |
| 152 | WARN_INIT_ON, |
| 153 | WARN_INIT_OFF, |
| 154 | WARN_INIT_ON, |
| 155 | WARN_INIT_ON, |
| 156 | WARN_INIT_ON, |
| 157 | WARN_INIT_ON, |
| 158 | WARN_INIT_ON |
| 159 | }; |
| 160 | |
Dale Curtis | 81fc45a | 2020-07-01 12:22:26 -0700 | [diff] [blame] | 161 | uint8_t warning_state[35]; /* Current state */ |