[Bug fortran/52270] [OOP] Polymorphic vars: wrong intent(in) check, passing nonptr variable to intent(in) ptr dummy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52270 janus at gcc dot gnu.org changed: What|Removed |Added CC||janus at gcc dot gnu.org Target Milestone|--- |4.8.0
[Bug fortran/52270] [OOP] Polymorphic vars: wrong intent(in) check, passing nonptr variable to intent(in) ptr dummy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52270 --- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2012-03-02 13:07:55 UTC --- Author: burnus Date: Fri Mar 2 13:07:46 2012 New Revision: 184784 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=184784 Log: 2012-03-02 Tobias Burnus bur...@net-b.de PR fortran/52270 * expr.c (gfc_check_vardef_context): Fix check for intent-in polymorphic pointer . * interface.c (compare_parameter): Allow passing TYPE to intent-in polymorphic pointer. 2012-03-02 Tobias Burnus bur...@net-b.de PR fortran/52270 * gfortran.dg/class_51.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/class_51.f90 trunk/gcc/testsuite/gfortran.dg/class_52.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/expr.c trunk/gcc/fortran/interface.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/52270] [OOP] Polymorphic vars: wrong intent(in) check, passing nonptr variable to intent(in) ptr dummy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52270 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2012-03-02 13:35:13 UTC --- FIXED on the trunk (i.e. GCC 4.8).
[Bug fortran/52270] [OOP] Polymorphic vars: wrong intent(in) check, passing nonptr variable to intent(in) ptr dummy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52270 --- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-02-21 13:36:30 UTC --- Submitted patch, pending review: http://gcc.gnu.org/ml/fortran/2012-02/msg00085.html
[Bug fortran/52270] [OOP] Polymorphic vars: wrong intent(in) check, passing nonptr variable to intent(in) ptr dummy
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52270 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added CC||burnus at gcc dot gnu.org --- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2012-02-16 09:54:51 UTC --- Untested patch for both issues. --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -4650,3 +4650,4 @@ gfc_check_vardef_context (gfc_expr* e, bool pointer, bool alloc_obj, check_intentin = true; - ptr_component = sym-attr.pointer; + ptr_component = (sym-ts.type == BT_CLASS) + ? CLASS_DATA (sym)-attr.class_pointer : sym-attr.pointer; for (ref = e-ref; ref check_intentin; ref = ref-next) --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1708,5 +1708,6 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, - /* F2008, 12.5.2.5. */ + /* F2008, 12.5.2.5; IR F08/0073. */ if (formal-ts.type == BT_CLASS - (CLASS_DATA (formal)-attr.class_pointer + ((CLASS_DATA (formal)-attr.class_pointer + !formal-attr.intent == INTENT_IN) || CLASS_DATA (formal)-attr.allocatable))