ref: 9d811e1267e725d5c4f63cb10061edaa863b3408
parent: af6f62701c5ab36fa674ef430981003f5498432a
author: ISSOtm <[email protected]>
date: Sun Feb 9 17:13:16 EST 2020
Warn when truncating values in `charmap`
--- a/src/asm/asmy.y
+++ b/src/asm/asmy.y
@@ -999,7 +999,12 @@
charmap : T_POP_CHARMAP string comma const
{
- if (charmap_Add($2, constexpr_GetConstantValue(&$4) & 0xFF) == -1) {
+ int32_t value = constexpr_GetConstantValue(&$4);
+
+ if ((value & 0xFF) != value)
+ warning(WARNING_TRUNCATION, "Expression must be 8-bit");
+
+ if (charmap_Add($2, value & 0xFF) == -1) {
fprintf(stderr, "Error parsing charmap. Either you've added too many (%i), or the input character length is too long (%i)' : %s\n", MAXCHARMAPS, CHARMAPLENGTH, strerror(errno));
yyerror("Error parsing charmap.");
}