[Bug fortran/50960] [OOP] vtables not marked as constant
janus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Nov 2 20:11:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50960
--- Comment #10 from janus at gcc dot gnu.org 2011-11-02 20:11:01 UTC ---
(In reply to comment #9)
> Apart from the two failures above, the patch in comment 1 also fails on:
>
> FAIL: gfortran.dg/class_15.f03 -O (internal compiler error)
The reason for this seems to be some module loading problem: The vtype of 't2'
is loaded from the module alright, while the vtab is not. As a consequence,
sym->value is not set correctly (in 'gfc_find_derived_vtab'). I'm currently not
sure how to fix the underlying problem, but the resulting segfault can be fixed
by:
Index: resolve.c
===================================================================
--- resolve.c (revision 180780)
+++ resolve.c (working copy)
@@ -11971,7 +11971,7 @@ resolve_fl_parameter (gfc_symbol *sym)
/* Make sure the types of derived parameters are consistent. This
type checking is deferred until resolution because the type may
refer to a derived type from the host. */
- if (sym->ts.type == BT_DERIVED
+ if (sym->ts.type == BT_DERIVED && sym->value
&& !gfc_compare_types (&sym->ts, &sym->value->ts))
{
gfc_error ("Incompatible derived type in PARAMETER at %L",
More information about the Gcc-bugs
mailing list