Hello world, the attached patch emits a warning for constant integer division. While correct according to the standard, I cannot really think of a legitimate reason why people would want to write 3/5 where they could have written 0 , so my preference would be to put this under -Wconversion (like in the attached patch).
However, I am open to discussion on that. It is easy enough to change. Regression-tested. Opinions? Comments? Would somebody rather have -Wconversion-extra? OK for trunk? Regards Thomas
Index: arith.c =================================================================== --- arith.c (Revision 224450) +++ arith.c (Arbeitskopie) @@ -733,6 +733,15 @@ gfc_arith_divide (gfc_expr *op1, gfc_expr *op2, gf mpz_tdiv_q (result->value.integer, op1->value.integer, op2->value.integer); + + if (warn_conversion) + { + char *p; + p = mpz_get_str (NULL, 10, result->value.integer); + gfc_warning_now (OPT_Wconversion, "Integer division simplifies " + "to constant %qs at %L", p, &op1->where); + free (p); + } break; case BT_REAL:
! { dg-do compile } ! { dg-options "-Wconversion" } program main print *, 3/5 ! { dg-warning "Integer division simplifies to constant" } end program main