aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/check.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2014-06-25 22:26:42 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2014-06-25 22:26:42 +0200
commitaa9ca5ca4f3e9e272a7dcc518d037927b319bb27 (patch)
treea15b037bed16a18aeac9a00c6147d44c259deb02 /gcc/fortran/check.c
parentdb88b449589fa989c1f72e4796d2bce291b6cedf (diff)
downloadgcc-aa9ca5ca4f3e9e272a7dcc518d037927b319bb27.zip
gcc-aa9ca5ca4f3e9e272a7dcc518d037927b319bb27.tar.gz
gcc-aa9ca5ca4f3e9e272a7dcc518d037927b319bb27.tar.bz2
check.c (check_co_minmaxsum): Add definable check.
gcc/fortran/ 2014-06-25 Tobias Burnus <burnus@net-b.de> * check.c (check_co_minmaxsum): Add definable check. * expr.c (gfc_check_vardef_context): Fix context == NULL case. * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer arguments. * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of temporary strings. gcc/testsuite/ 2014-06-25 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray_collectives_7.f90: New. From-SVN: r211992
Diffstat (limited to 'gcc/fortran/check.c')
-rw-r--r--gcc/fortran/check.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
index bd3eff6..10944eb 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -1307,6 +1307,18 @@ check_co_minmaxsum (gfc_expr *a, gfc_expr *result_image, gfc_expr *stat,
if (!variable_check (a, 0, false))
return false;
+ if (!gfc_check_vardef_context (a, false, false, false, "argument 'A' with "
+ "INTENT(INOUT)"))
+ return false;
+
+ if (gfc_has_vector_subscript (a))
+ {
+ gfc_error ("Argument 'A' with INTENT(INOUT) at %L of the intrinsic "
+ "subroutine %s shall not have a vector subscript",
+ &a->where, gfc_current_intrinsic);
+ return false;
+ }
+
if (result_image != NULL)
{
if (!type_check (result_image, 1, BT_INTEGER))