------- Comment #3 from burnus at gcc dot gnu dot org 2008-01-21 23:11 ------- Move to Fortran. The problem seems to be:
if (spec->f90_type == BT_VOID) which is for some reason not initialized. With openSUSE's 4.3.0 20080102 I don't see it. I actually do not see how this comes as gfc_clear_ts sets it. In any case the following is a useful patch: Index: parse.c =================================================================== --- parse.c (Revision 131702) +++ parse.c @@ -2189,7 +2189,7 @@ loop: gfc_current_block ()->ts.kind = 0; /* Keep the derived type; if it's bad, it will be discovered later. */ - if (!(ts->type = BT_DERIVED && ts->derived)) + if (!(ts->type == BT_DERIVED && ts->derived)) ts->type = BT_UNKNOWN; } -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |fortran http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34907