+2012-04-16 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/52968
+ * class.c (gfc_build_class_symbol): Make sure the 'f2k_derived'
+ namespace is present.
+
2012-04-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/51082
fclass->refs++;
fclass->ts.type = BT_UNKNOWN;
fclass->attr.abstract = ts->u.derived->attr.abstract;
- if (ts->u.derived->f2k_derived)
- fclass->f2k_derived = gfc_get_namespace (NULL, 0);
+ fclass->f2k_derived = gfc_get_namespace (NULL, 0);
if (gfc_add_flavor (&fclass->attr, FL_DERIVED,
NULL, &gfc_current_locus) == FAILURE)
return FAILURE;
c->attr.access = ACCESS_PRIVATE;
c->attr.pointer = 1;
}
- else if (!fclass->f2k_derived)
- fclass->f2k_derived = gfc_get_namespace (NULL, 0);
/* Since the extension field is 8 bit wide, we can only have
up to 255 extension levels. */
--- /dev/null
+! { dg-do compile }
+!
+! PR 52968: [OOP] Call to type-bound procedure wrongly rejected
+!
+! Contributed by Reuben Budiardja <reubendb@gmail.com>
+
+module SolverModule
+
+ type :: SolverType
+ class ( EquationTemplate ), pointer :: Equation
+ end type
+
+ type :: EquationTemplate
+ contains
+ procedure, nopass :: Evaluate
+ end type
+
+contains
+
+ subroutine Evaluate ()
+ end subroutine
+
+ subroutine Solve
+ type ( SolverType ) :: S
+ call S % Equation % Evaluate ()
+ end subroutine
+
+end module