Commit 42ff605a by Janus Weil

re PR fortran/52968 ([OOP] Call to type-bound procedure wrongly rejected)

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-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/52968
	* gfortran.dg/typebound_call_23.f03: New test case.

From-SVN: r186486
parent 56992a78
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
......
......@@ -541,8 +541,7 @@ gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr,
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;
......@@ -579,8 +578,6 @@ gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr,
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. */
......
2012-04-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/52968
* gfortran.dg/typebound_call_23.f03: New test case.
2012-04-15 Jason Merrill <jason@redhat.com>
PR c++/47220
......
! { 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment