------- Comment #6 from pault at gcc dot gnu dot org 2007-11-16 20:34 ------- The reduced testcase of #2 is fixed by:
Index: gcc/fortran/resolve.c =================================================================== *** gcc/fortran/resolve.c (revision 129882) --- gcc/fortran/resolve.c (working copy) *************** resolve_generic_f0 (gfc_expr *expr, gfc_ *** 1418,1423 **** --- 1418,1425 ---- else if (s->result != NULL && s->result->as != NULL) expr->rank = s->result->as->rank; + gfc_set_sym_referenced (expr->value.function.esym); + return MATCH_YES; } ie. The specific function was not getting set as referenced in this case. The original testcase now gets to: $ /irun/bin/gfortran -fdump-tree-original pr31213.f90 pr31213.f90: In function 'spec_test': pr31213.f90:62: internal compiler error: in make_decl_rtl, at varasm.c:1263 This is odd because butt_ugly is marked as DECL_EXTERNAL and TREE_PUBLIC. That's for tomorrow! Paul -- pault at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pault at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2007-07-19 02:19:58 |2007-11-16 20:34:50 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31213