re PR fortran/52161 (Internal compiler errors with -fcheck=bounds in coarray tests)

2012-11-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52161
        * trans-stmt.c (gfc_trans_sync): Fix bound checking
        for -fcoarray=lib.

2012-11-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52161
        * coarray/sync_3.f90: Extend test.

From-SVN: r193924
This commit is contained in:
Tobias Burnus 2012-11-29 09:43:48 +01:00 committed by Tobias Burnus
parent 2bc462ea54
commit 45d5889a07
4 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2012-11-28 Tobias Burnus <burnus@net-b.de>
PR fortran/52161
* trans-stmt.c (gfc_trans_sync): Fix bound checking
for -fcoarray=lib.
2012-11-28 Tobias Burnus <burnus@net-b.de>
PR fortran/52161

View File

@ -784,12 +784,12 @@ gfc_trans_sync (gfc_code *code, gfc_exec_op type)
else
{
tree cond2;
cond = fold_build2_loc (input_location, GE_EXPR, boolean_type_node,
cond = fold_build2_loc (input_location, GT_EXPR, boolean_type_node,
images, gfort_gvar_caf_num_images);
cond2 = fold_build2_loc (input_location, LT_EXPR, boolean_type_node,
images,
build_int_cst (TREE_TYPE (images), 1));
cond = fold_build2_loc (input_location, TRUTH_AND_EXPR,
cond = fold_build2_loc (input_location, TRUTH_OR_EXPR,
boolean_type_node, cond, cond2);
}
gfc_trans_runtime_check (true, false, cond, &se.pre,

View File

@ -1,3 +1,8 @@
2012-11-28 Tobias Burnus <burnus@net-b.de>
PR fortran/52161
* coarray/sync_3.f90: Extend test.
2012-11-29 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/55512

View File

@ -1,5 +1,6 @@
! { dg-do run }
! { dg-options "-fcheck=all" }
! { dg-shouldfail "Invalid image number -1 in SYNC IMAGES" }
!
! As sync_1, but with bounds checking enabled.
! PR fortran/52161
@ -65,4 +66,10 @@ n = 5
sync images (*,errmsg=str,stat=n)
if (n /= 0) call abort()
n = -1
sync images ( num_images() )
sync images (n) ! Invalid: "-1"
end
! { dg-output "Fortran runtime error: Invalid image number -1 in SYNC IMAGES" }