@@ -278,7 +278,7 @@ static int simplify_int_binop(struct expression *expr, struct symbol *ctype)
expr->taint = left->taint | right->taint;
return 1;
Div:
- if (!conservative)
+ if (!conservative && Wdiv_by_zero)
warning(expr->pos, "division by zero");
return 0;
Overflow:
@@ -363,7 +363,7 @@ static int simplify_float_binop(struct expression *expr)
expr->fvalue = res;
return 1;
Div:
- if (!conservative)
+ if (!conservative && Wdiv_by_zero)
warning(expr->pos, "division by zero");
return 0;
}
@@ -967,7 +967,7 @@ static void warn_undef_insn(struct instruction *insn, int warn)
case OP_MODU:
case OP_MODS:
if (is_pseudo_value(insn->src2, 0)) {
- if (warn)
+ if (warn && Wdiv_by_zero)
warning(insn->pos, "division by zero");
}
break;
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> --- expand.c | 4 ++-- linearize.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)