diff options
author | Janus Weil <janus@gcc.gnu.org> | 2018-02-12 18:11:58 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2018-02-12 18:11:58 +0100 |
commit | 24abcc441ab1c0e8705e43189efff80daa36acfb (patch) | |
tree | 79894e2f612f76d538f033dec77acd9629148019 /gcc/fortran/resolve.c | |
parent | 78604de064490c8c12d2d4efadbd453f7c8c7685 (diff) | |
download | gcc-24abcc441ab1c0e8705e43189efff80daa36acfb.zip gcc-24abcc441ab1c0e8705e43189efff80daa36acfb.tar.gz gcc-24abcc441ab1c0e8705e43189efff80daa36acfb.tar.bz2 |
re PR fortran/84273 ([F03] Reject allocatable passed-object dummy argument (proc_ptr_47.f90))
2018-02-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/84273
* resolve.c (resolve_component): Fix checks of passed argument in
procedure-pointer components.
2018-02-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/84273
* gfortran.dg/proc_ptr_47.f90: Fix invalid test case.
* gfortran.dg/proc_ptr_comp_pass_4.f90: Fix and extend test case.
From-SVN: r257590
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 429c1c4..01e2c38 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -13706,8 +13706,8 @@ resolve_component (gfc_component *c, gfc_symbol *sym) return false; } - /* Check for C453. */ - if (me_arg->attr.dimension) + /* Check for F03:C453. */ + if (CLASS_DATA (me_arg)->attr.dimension) { gfc_error ("Argument %qs of %qs with PASS(%s) at %L " "must be scalar", me_arg->name, c->name, me_arg->name, @@ -13716,7 +13716,7 @@ resolve_component (gfc_component *c, gfc_symbol *sym) return false; } - if (me_arg->attr.pointer) + if (CLASS_DATA (me_arg)->attr.class_pointer) { gfc_error ("Argument %qs of %qs with PASS(%s) at %L " "may not have the POINTER attribute", me_arg->name, @@ -13725,7 +13725,7 @@ resolve_component (gfc_component *c, gfc_symbol *sym) return false; } - if (me_arg->attr.allocatable) + if (CLASS_DATA (me_arg)->attr.allocatable) { gfc_error ("Argument %qs of %qs with PASS(%s) at %L " "may not be ALLOCATABLE", me_arg->name, c->name, |