re PR fortran/78178 (ICE in WHERE statement with diagnostic)

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

	PR fortran/78178
	* match.c (match_simple_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_6.f90:  New test.

From-SVN: r241756
This commit is contained in:
Thomas Koenig 2016-11-01 21:16:46 +00:00
parent 70d288130f
commit 5b7c051940
4 changed files with 27 additions and 0 deletions

View file

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

View file

@ -6219,6 +6219,7 @@ match_simple_where (void)
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_6.f90: New test.
2016-11-01 Jakub Jelinek <jakub@redhat.com>
* g++.dg/debug/dwarf2/inline-var-1.C: New test.

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)
if (.true.) where (txt(1:3) /= '' ) y(1:3,i,j) = txt(1:3) ! { dg-warning "CHARACTER expression will be truncated" }
end subroutine where_ice