aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-intrinsic.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2015-12-12 20:00:32 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2015-12-12 20:00:32 +0100
commit460263d0ef85e47cff2f39181a06d1d235ad4df7 (patch)
treeb4b313cc1ea7b49c947ce78542b13088030fe79e /gcc/fortran/trans-intrinsic.c
parent8d4227c89bd724cba6995aa50f7c566d95b9ce51 (diff)
downloadgcc-460263d0ef85e47cff2f39181a06d1d235ad4df7.zip
gcc-460263d0ef85e47cff2f39181a06d1d235ad4df7.tar.gz
gcc-460263d0ef85e47cff2f39181a06d1d235ad4df7.tar.bz2
re PR fortran/45859 ([Coarray, F2008, IR] Rejects valid actuals to coarray dummies)
2014-12-12 Tobias Burnus <burnus@net-b.de> gcc/fortran PR fortran/45859 * expr.c (gfc_is_simply_contiguous): Optionally permit array * elements. (gfc_check_pointer_assign): Update call. * interface.c (compare_parameter): Ditto. * trans-array.c (gfc_conv_array_parameter): Ditto. * trans-intrinsic.c (gfc_conv_intrinsic_transfer, conv_isocbinding_function): Ditto. * gfortran.h (gfc_is_simply_contiguous): Update prototype. gcc/testsuite/ PR fortran/45859 * gcc/testsuite/gfortran.dg/coarray_args_2.f90: Remove dg-error. From-SVN: r231585
Diffstat (limited to 'gcc/fortran/trans-intrinsic.c')
-rw-r--r--gcc/fortran/trans-intrinsic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 31bad35..4e65603 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -6269,7 +6269,7 @@ gfc_conv_intrinsic_transfer (gfc_se * se, gfc_expr * expr)
source_type = gfc_get_element_type (TREE_TYPE (argse.expr));
/* Repack the source if not simply contiguous. */
- if (!gfc_is_simply_contiguous (arg->expr, false))
+ if (!gfc_is_simply_contiguous (arg->expr, false, true))
{
tmp = gfc_build_addr_expr (NULL_TREE, argse.expr);
@@ -7167,7 +7167,7 @@ conv_isocbinding_function (gfc_se *se, gfc_expr *expr)
{
if (arg->expr->rank == 0)
gfc_conv_expr_reference (se, arg->expr);
- else if (gfc_is_simply_contiguous (arg->expr, false))
+ else if (gfc_is_simply_contiguous (arg->expr, false, false))
gfc_conv_array_parameter (se, arg->expr, true, NULL, NULL, NULL);
else
{