mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
fortran: revise non-char pointer handling in gfc_conv_constant
PR fortran/122342 gcc/fortran/ChangeLog: * trans-const.cc (gfc_conv_constant): Create a variable for the non-char pointer. gcc/testsuite/ChangeLog: * gfortran.dg/coarray_atomic_5.f90: Update testcase. * gfortran.dg/team_form_3.f90: Likewise.
This commit is contained in:
@@ -444,6 +444,8 @@ gfc_conv_constant (gfc_se * se, gfc_expr * expr)
|
|||||||
if (expr->ts.type == BT_CHARACTER)
|
if (expr->ts.type == BT_CHARACTER)
|
||||||
gfc_conv_string_parameter (se);
|
gfc_conv_string_parameter (se);
|
||||||
else
|
else
|
||||||
se->expr = gfc_build_addr_expr (NULL_TREE, se->expr);
|
se->expr
|
||||||
|
= gfc_build_addr_expr (NULL_TREE,
|
||||||
|
gfc_trans_force_lval (&se->pre, se->expr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ program atomic
|
|||||||
write(*,*) me
|
write(*,*) me
|
||||||
end program
|
end program
|
||||||
|
|
||||||
! { dg-final { scan-tree-dump-times "value.. = 0;" 1 "original" } }
|
! { dg-final { scan-tree-dump-times "D\\.\[0-9\]+ = 0;" 1 "original" } }
|
||||||
! { dg-final { scan-tree-dump-times "_gfortran_caf_atomic_define \\(caf_token.., 0, 1, &value.., 0B, 1, 4\\);" 1 "original" } }
|
! { dg-final { scan-tree-dump-times "_gfortran_caf_atomic_define \\(caf_token.., 0, 1, &D\\.\[0-9\]+, 0B, 1, 4\\);" 1 "original" } }
|
||||||
! { dg-final { scan-tree-dump-times "_gfortran_caf_atomic_op \\(1, caf_token.., 0, 1, &me, 0B, 0B, 1, 4\\);" 1 "original" } }
|
! { dg-final { scan-tree-dump-times "_gfortran_caf_atomic_op \\(1, caf_token.., 0, 1, &me, 0B, 0B, 1, 4\\);" 1 "original" } }
|
||||||
! { dg-final { scan-tree-dump-times "_gfortran_caf_atomic_ref \\(caf_token.., 0, 1, &me, 0B, 1, 4\\);" 1 "original" } }
|
! { dg-final { scan-tree-dump-times "_gfortran_caf_atomic_ref \\(caf_token.., 0, 1, &me, 0B, 1, 4\\);" 1 "original" } }
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ end
|
|||||||
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, 0B, 0B, 0B, 0\\)" "original" } }
|
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, 0B, 0B, 0B, 0\\)" "original" } }
|
||||||
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, 0B, &istat, 0B, 0\\)" "original" } }
|
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, 0B, &istat, 0B, 0\\)" "original" } }
|
||||||
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, 0B, &istat, &err, 30\\)" "original" } }
|
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, 0B, &istat, &err, 30\\)" "original" } }
|
||||||
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, &C\\.\[0-9\]+, 0B, 0B, 0\\)" "original" } }
|
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, &D\\.\[0-9\]+, 0B, 0B, 0\\)" "original" } }
|
||||||
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, &C\\.\[0-9\]+, &istat, 0B, 0\\)" "original" } }
|
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, &D\\.\[0-9\]+, &istat, 0B, 0\\)" "original" } }
|
||||||
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, &C\\.\[0-9\]+, &istat, &err, 30\\)" "original" } }
|
! { dg-final { scan-tree-dump "_gfortran_caf_form_team \\(new_team, &team, &D\\.\[0-9\]+, &istat, &err, 30\\)" "original" } }
|
||||||
|
|||||||
Reference in New Issue
Block a user