[Bug fortran/52270] [OOP] Polymorphic vars: wrong intent(in) check, passing nonptr variable to intent(in) ptr dummy

2016-11-16 Thread janus at gcc dot gnu.org
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

2012-03-02 Thread burnus at gcc dot gnu.org
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

2012-03-02 Thread burnus at gcc dot gnu.org
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

2012-02-21 Thread burnus at gcc dot gnu.org
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

2012-02-16 Thread burnus at gcc dot gnu.org
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))