Commit 8909fee2 by Steven G. Kargl

re PR fortran/85895 (ICE in gfc_conv_array_ref, at fortran/trans-array.c:3518)

2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85895
	* resolve.c (resolve_sync): Resolve expression before checking for
	an error.

2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85895

	* gfortran.dg/coarray_3.f90: Fix invalid testcase.
	* gfortran.dg/pr85895.f90: New test.

From-SVN: r260696
parent 91294f1e
2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/85895
* resolve.c (resolve_sync): Resolve expression before checking for
an error.
2018-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/85841
......
......@@ -9527,6 +9527,7 @@ resolve_sync (gfc_code *code)
}
/* Check STAT. */
gfc_resolve_expr (code->expr2);
if (code->expr2
&& (code->expr2->ts.type != BT_INTEGER || code->expr2->rank != 0
|| code->expr2->expr_type != EXPR_VARIABLE))
......@@ -9534,6 +9535,7 @@ resolve_sync (gfc_code *code)
&code->expr2->where);
/* Check ERRMSG. */
gfc_resolve_expr (code->expr3);
if (code->expr3
&& (code->expr3->ts.type != BT_CHARACTER || code->expr3->rank != 0
|| code->expr3->expr_type != EXPR_VARIABLE))
......
2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/85895
* gfortran.dg/coarray_3.f90: Fix invalid testcase.
* gfortran.dg/pr85895.f90: New test.
2018-05-24 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/avx512f-vcvtusi2sd64-1.c: Update scan string.
......
......@@ -13,7 +13,7 @@ end critical fkl ! { dg-error "Expecting END PROGRAM" }
sync all (stat=1) ! { dg-error "Syntax error in SYNC ALL" }
sync all ( stat = n,stat=k) ! { dg-error "Redundant STAT" }
sync memory (errmsg=str)
sync memory (errmsg=str) ! { dg-error "must be a scalar CHARACTER variable" }
sync memory (errmsg=n) ! { dg-error "must be a scalar CHARACTER variable" }
sync images (*, stat=1.0) ! { dg-error "Syntax error in SYNC IMAGES" }
sync images (-1) ! { dg-error "must between 1 and num_images" }
......
! { dg-do compile }
! { dg-options "-fcoarray=lib" }
! PR fortran/85895
subroutine p
character(80) :: c(2)
sync memory (errmsg=c) ! { dg-error "scalar CHARACTER variable" }
end subroutine p
subroutine q
character(80) :: c(2)
sync memory (errmsg=c(1:2)) ! { dg-error "scalar CHARACTER variable" }
end subroutine q
subroutine r
character(80) :: c(2)
sync memory (errmsg=c(1))
end subroutine r
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