[Bug fortran/84273] Reject allocatable passed-object dummy argument (proc_ptr_47.f90)

2018-02-12 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84273

--- Comment #2 from janus at gcc dot gnu.org ---
Author: janus
Date: Mon Feb 12 17:11:58 2018
New Revision: 257590

URL: https://gcc.gnu.org/viewcvs?rev=257590=gcc=rev
Log:
2018-02-12  Janus Weil  

PR fortran/84273
* resolve.c (resolve_component): Fix checks of passed argument in
procedure-pointer components.


2018-02-12  Janus Weil  

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.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/proc_ptr_47.f90
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_4.f90

[Bug fortran/84273] Reject allocatable passed-object dummy argument (proc_ptr_47.f90)

2018-02-08 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84273

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-02-08
   Assignee|unassigned at gcc dot gnu.org  |janus at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from janus at gcc dot gnu.org ---
Turns out the relevant check is already there, but not working.
proc_ptr_47 is rejected with this fix:

Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c   (revision 257498)
+++ gcc/fortran/resolve.c   (working copy)
@@ -13722,7 +13722,7 @@
   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,