mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 23:32:09 +00:00
make integer constant division warnings optional
This commit is contained in:
parent
2db08923e8
commit
112f74a357
3 changed files with 11 additions and 2 deletions
|
@ -603,6 +603,7 @@ typedef struct {
|
|||
qboolean undefined_function; // Warn on undefined function use
|
||||
qboolean uninited_variable; // Warn on use of uninitialized vars
|
||||
qboolean vararg_integer; // Warn on passing an integer to vararg func
|
||||
qboolean integer_divide; // Warn on integer constant division
|
||||
} warn_options_t;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -736,7 +736,8 @@ do_op_integer (int op, expr_t *e1, expr_t *e2)
|
|||
e1->e.integer_val *= i2;
|
||||
break;
|
||||
case '/':
|
||||
warning (e2, "%d / %d == %d", i1, i2, i1 / i2);
|
||||
if (options.warnings.integer_divide)
|
||||
warning (e2, "%d / %d == %d", i1, i2, i1 / i2);
|
||||
e1->e.integer_val /= i2;
|
||||
break;
|
||||
case '&':
|
||||
|
@ -812,7 +813,8 @@ do_op_uinteger (int op, expr_t *e1, expr_t *e2)
|
|||
e1->e.uinteger_val *= i2;
|
||||
break;
|
||||
case '/':
|
||||
warning (e2, "%d / %d == %d", i1, i2, i1 / i2);
|
||||
if (options.warnings.integer_divide)
|
||||
warning (e2, "%d / %d == %d", i1, i2, i1 / i2);
|
||||
e1->e.uinteger_val /= i2;
|
||||
break;
|
||||
case '&':
|
||||
|
|
|
@ -793,11 +793,13 @@ DecodeArgs (int argc, char **argv)
|
|||
options.warnings.undefined_function = true;
|
||||
options.warnings.uninited_variable = true;
|
||||
options.warnings.vararg_integer = true;
|
||||
options.warnings.integer_divide = true;
|
||||
} else if (!(strcasecmp (temp, "none"))) {
|
||||
options.warnings.cow = false;
|
||||
options.warnings.undefined_function = false;
|
||||
options.warnings.uninited_variable = false;
|
||||
options.warnings.vararg_integer = false;
|
||||
options.warnings.integer_divide = false;
|
||||
} else if (!(strcasecmp (temp, "cow"))) {
|
||||
options.warnings.cow = true;
|
||||
} else if (!(strcasecmp (temp, "no-cow"))) {
|
||||
|
@ -818,6 +820,10 @@ DecodeArgs (int argc, char **argv)
|
|||
options.warnings.vararg_integer = true;
|
||||
} else if (!(strcasecmp (temp, "no-vararg-integer"))) {
|
||||
options.warnings.vararg_integer = false;
|
||||
} else if (!(strcasecmp (temp, "integer-divide"))) {
|
||||
options.warnings.integer_divide = true;
|
||||
} else if (!(strcasecmp (temp, "no-integer-divide"))) {
|
||||
options.warnings.integer_divide = false;
|
||||
}
|
||||
temp = strtok (NULL, ",");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue