Commit 918b6c9e by Thomas Koenig

re PR fortran/80142 (Warning: No location in expression ... with -O / -ffrontend-optimize)

2017-03-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80142
	* frontend-passes.c (combine_array_constructor): Take
	location of new expression from constructor expression instead
	of constructor.

2017-03-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80142
	* gfortran.dg/any_loc.f90: New test case.

From-SVN: r246388
parent b1fb3cb0
2017-03-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/80142
* frontend-passes.c (combine_array_constructor): Take
location of new expression from constructor expression instead
of constructor.
2017-03-18 Paul Thomas <pault@gcc.gnu.org> 2017-03-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/79676 PR fortran/79676
......
...@@ -1381,7 +1381,7 @@ combine_array_constructor (gfc_expr *e) ...@@ -1381,7 +1381,7 @@ combine_array_constructor (gfc_expr *e)
new_expr->ts = e->ts; new_expr->ts = e->ts;
new_expr->expr_type = EXPR_OP; new_expr->expr_type = EXPR_OP;
new_expr->rank = c->expr->rank; new_expr->rank = c->expr->rank;
new_expr->where = c->where; new_expr->where = c->expr->where;
new_expr->value.op.op = e->value.op.op; new_expr->value.op.op = e->value.op.op;
if (scalar_first) if (scalar_first)
......
2017-03-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/80142
* gfortran.dg/any_loc.f90: New test case.
2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR target/80082 PR target/80082
......
! { dg-do compile }
! { dg-options "-ffrontend-optimize" }
! PR fortran/80142 - the location on the expression of the
! unrolled any statement was not correctly set.
! Test case by Harald Anlauf.
MODULE gfcbug140
implicit none
integer ,parameter :: WV_NONE = 1
integer, parameter :: WV_CDV_4 = 23
integer, parameter :: WV_CDV_8 = 24
integer, parameter :: wv_CDV_list(2) = [ WV_CDV_4, WV_CDV_8 ]
integer :: basis = WV_NONE
contains
subroutine wave_1d (x)
real, intent(inout) :: x(:,:)
integer :: oldbase
oldbase = basis
if (any (basis == wv_CDV_list(:))) then
end if
basis = oldbase
end subroutine wave_1d
!-
subroutine mr_gp_mat (A)
real, intent(inout) :: A (:,:)
call wave_1d (A)
end subroutine mr_gp_mat
end module gfcbug140
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment