mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Make implicit truncation a warning
This commit is contained in:
@@ -21,6 +21,7 @@ enum WarningID {
|
|||||||
WARNING_SHIFT,
|
WARNING_SHIFT,
|
||||||
WARNING_USER,
|
WARNING_USER,
|
||||||
WARNING_SHIFT_AMOUNT,
|
WARNING_SHIFT_AMOUNT,
|
||||||
|
WARNING_TRUNCATION,
|
||||||
|
|
||||||
NB_WARNINGS,
|
NB_WARNINGS,
|
||||||
|
|
||||||
|
|||||||
@@ -1190,7 +1190,7 @@ constlist_32bit_entry : /* empty */
|
|||||||
const_8bit : relocconst
|
const_8bit : relocconst
|
||||||
{
|
{
|
||||||
if( (!rpn_isReloc(&$1)) && (($1.nVal < -128) || ($1.nVal > 255)) )
|
if( (!rpn_isReloc(&$1)) && (($1.nVal < -128) || ($1.nVal > 255)) )
|
||||||
yyerror("Expression must be 8-bit");
|
warning(WARNING_TRUNCATION, "Expression must be 8-bit");
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@@ -1198,7 +1198,7 @@ const_8bit : relocconst
|
|||||||
const_16bit : relocconst
|
const_16bit : relocconst
|
||||||
{
|
{
|
||||||
if ((!rpn_isReloc(&$1)) && (($1.nVal < -32768) || ($1.nVal > 65535)))
|
if ((!rpn_isReloc(&$1)) && (($1.nVal < -32768) || ($1.nVal > 65535)))
|
||||||
yyerror("Expression must be 16-bit");
|
warning(WARNING_TRUNCATION, "Expression must be 16-bit");
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ static enum WarningState const defaultWarnings[NB_WARNINGS] = {
|
|||||||
WARNING_DISABLED, /* Shifting undefined behavior */
|
WARNING_DISABLED, /* Shifting undefined behavior */
|
||||||
WARNING_ENABLED, /* User warnings */
|
WARNING_ENABLED, /* User warnings */
|
||||||
WARNING_DISABLED, /* Strange shift amount */
|
WARNING_DISABLED, /* Strange shift amount */
|
||||||
|
WARNING_ENABLED, /* Implicit truncation loses some bits */
|
||||||
};
|
};
|
||||||
|
|
||||||
static enum WarningState warningStates[NB_WARNINGS];
|
static enum WarningState warningStates[NB_WARNINGS];
|
||||||
@@ -72,6 +73,7 @@ static char const *warningFlags[NB_WARNINGS_ALL] = {
|
|||||||
"shift",
|
"shift",
|
||||||
"user",
|
"user",
|
||||||
"shift-amount",
|
"shift-amount",
|
||||||
|
"truncation",
|
||||||
|
|
||||||
/* Meta warnings */
|
/* Meta warnings */
|
||||||
"all",
|
"all",
|
||||||
|
|||||||
Reference in New Issue
Block a user