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

Reply via email to