diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-05-30 07:29:49 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-05-30 07:29:49 +0000 |
commit | 89ba6b9b01cf54395a0ff041cb958aeda88d6371 (patch) | |
tree | 5dde3fa7e4735c312369bdcc1f9b907ca6514718 /gcc/fortran/interface.c | |
parent | b9873a3fdbdf5aaa9ead7131ea2d8abeaab927d8 (diff) | |
download | gcc-89ba6b9b01cf54395a0ff041cb958aeda88d6371.tar.gz |
2013-05-30 Tobias Burnus <burnus@net-b.de>
PR fortran/57458
* interface.c (compare_parameter): Update C1239/C1240 constraint
check for assumed-rank/TS29113.
2013-05-30 Tobias Burnus <burnus@net-b.de>
PR fortran/57458
* gfortran.dg/assumed_rank_13.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199437 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r-- | gcc/fortran/interface.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 2f8c6a5e54f..adc4e63845f 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -2031,14 +2031,15 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, || actual->symtree->n.sym->attr.volatile_) && (formal->attr.asynchronous || formal->attr.volatile_) && actual->rank && !gfc_is_simply_contiguous (actual, true) - && ((formal->as->type != AS_ASSUMED_SHAPE && !formal->attr.pointer) + && ((formal->as->type != AS_ASSUMED_SHAPE + && formal->as->type != AS_ASSUMED_RANK && !formal->attr.pointer) || formal->attr.contiguous)) { if (where) - gfc_error ("Dummy argument '%s' has to be a pointer or assumed-shape " - "array without CONTIGUOUS attribute - as actual argument at" - " %L is not simply contiguous and both are ASYNCHRONOUS " - "or VOLATILE", formal->name, &actual->where); + gfc_error ("Dummy argument '%s' has to be a pointer, assumed-shape or " + "assumed-rank array without CONTIGUOUS attribute - as actual" + " argument at %L is not simply contiguous and both are " + "ASYNCHRONOUS or VOLATILE", formal->name, &actual->where); return 0; } |