re PR fortran/69544 (Internal compiler error with -Wall and where)

2016-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/69544
	* match.c (gfc_match_where):  Fill in locus for assigment
	in simple WHERE statement.

2016-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/69544
	* gfortran.dg/where_5.f90:  New test.

From-SVN: r241745
This commit is contained in:
Thomas Koenig 2016-11-01 16:18:18 +00:00
parent a14b1c1c11
commit 7f4266d4fd
4 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/69544
* match.c (gfc_match_where): Fill in locus for assigment
in simple WHERE statement.
2016-10-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/54679

View File

@ -6275,8 +6275,12 @@ gfc_match_where (gfc_statement *st)
c = gfc_get_code (EXEC_WHERE);
c->expr1 = expr;
/* Put in the assignment. It will not be processed by add_statement, so we
need to copy the location here. */
c->next = XCNEW (gfc_code);
*c->next = new_st;
c->next->loc = gfc_current_locus;
gfc_clear_new_st ();
new_st.op = EXEC_WHERE;

View File

@ -1,3 +1,8 @@
2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/69544
* gfortran.dg/where_5.f90: New test.
2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com>
* gcc.target/arm/simd/vmaxnm_f32_1.c: New.

View File

@ -0,0 +1,15 @@
! { dg-do compile }
! { dg-options "-Wcharacter-truncation" }
subroutine where_ice (i,j)
implicit none
character(8) :: y(10,10,2)
integer :: i
integer :: j
character(12) :: txt(5)
where (txt(1:3) /= '' ) y(1:3,i,j) = txt(1:3) ! { dg-warning "CHARACTER expression will be truncated" }
end subroutine where_ice