diff options
author | Janus Weil <janus@gcc.gnu.org> | 2014-12-27 23:40:21 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2014-12-27 23:40:21 +0100 |
commit | c19a00337aa1cd579cb51ce5aa71a81261b97fe3 (patch) | |
tree | f236c561664ad5e7b935c8e3abb09856fcc8631d /gcc/fortran/resolve.c | |
parent | 2e4aa0a5016c595477c0638765b6ceef8e0fb3c0 (diff) | |
download | gcc-c19a00337aa1cd579cb51ce5aa71a81261b97fe3.zip gcc-c19a00337aa1cd579cb51ce5aa71a81261b97fe3.tar.gz gcc-c19a00337aa1cd579cb51ce5aa71a81261b97fe3.tar.bz2 |
re PR fortran/54756 ([OOP] [F08] Should reject CLASS, intent(out) in PURE procedures)
2014-12-27 Janus Weil <janus@gcc.gnu.org>
PR fortran/54756
* resolve.c (resolve_formal_arglist): Reject polymorphic INTENT(OUT)
arguments of pure procedures.
2014-12-27 Janus Weil <janus@gcc.gnu.org>
PR fortran/54756
* gfortran.dg/class_array_3.f03: Fixed invalid test case.
* gfortran.dg/class_array_7.f03: Ditto.
* gfortran.dg/class_dummy_4.f03: Ditto.
* gfortran.dg/defined_assignment_3.f90: Ditto.
* gfortran.dg/defined_assignment_5.f90: Ditto.
* gfortran.dg/elemental_subroutine_10.f90: Ditto.
* gfortran.dg/typebound_operator_4.f03: Ditto.
* gfortran.dg/typebound_proc_16.f03: Ditto.
* gfortran.dg/unlimited_polymorphic_19.f90: Ditto.
* gfortran.dg/class_dummy_5.f90: New test.
From-SVN: r219085
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 3b8b869..05a948b 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -414,6 +414,15 @@ resolve_formal_arglist (gfc_symbol *proc) &sym->declared_at); } } + + /* F08:C1278a. */ + if (sym->ts.type == BT_CLASS && sym->attr.intent == INTENT_OUT) + { + gfc_error ("INTENT(OUT) argument '%s' of pure procedure %qs at %L" + " may not be polymorphic", sym->name, proc->name, + &sym->declared_at); + continue; + } } if (proc->attr.implicit_pure) |