------- 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