arith.c (arith_power): If simplifying integer power expression to zero...

2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>

	* arith.c (arith_power):  If simplifying integer power expression
	to zero, warn if -Winteger-division is given.

2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>

	* gfortran.dg/integer_exponentiation_7.f90:  New test.

From-SVN: r244830
This commit is contained in:
Thomas Koenig 2017-01-23 19:43:28 +00:00 committed by Thomas Koenig
parent 53d190c120
commit 15b8fd499d
4 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
* arith.c (arith_power): If simplifying integer power expression
to zero, warn if -Winteger-division is given.
2017-01-22 Jakub Jelinek <jakub@redhat.com>
PR fortran/79154

View File

@ -874,6 +874,10 @@ arith_power (gfc_expr *op1, gfc_expr *op2, gfc_expr **resultp)
{
/* if op2 < 0, op1**op2 == 0 because abs(op1) > 1. */
mpz_set_si (result->value.integer, 0);
if (warn_integer_division)
gfc_warning_now (OPT_Winteger_division, "Negative "
"exponent of integer has zero "
"result at %L", &result->where);
}
else if (gfc_extract_int (op2, &power))
{

View File

@ -1,3 +1,7 @@
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
* gfortran.dg/integer_exponentiation_7.f90: New test.
2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/78634

View File

@ -0,0 +1,5 @@
! { dg-do compile }
! { dg-options "-Winteger-division" }
program main
print *,10**(-3) ! { dg-warning "Negative exponent of integer has zero result" }
end program main