http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55763



--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-12-21 
22:59:27 UTC ---

To the last test case of comment 0:



> gives an ICE (segfault) at

>              vector_comp => field

> 

> 0x62d477 gfc_trans_pointer_assignment(gfc_expr*, gfc_expr*)

>         ../../gcc/fortran/trans-expr.c:6523



The problem is that the LHS is:

  expr1->symtree->n.sym->attr.subref_array_pointer



The ICE occurs for:

              gfc_add_modify (&lse.post, GFC_DECL_SPAN(decl), tmp);



The problem is that DECL_LANG_SPECIFIC(decl) is NULL; hence,

DECL_LANG_SPECIFIC(decl)->span causes the ICE.



In principle, gfc_get_symbol_decl takes care of that. However, as the symbol is

a dummy argument, the backend_decl is already set and gfc_get_symbol_decl

returns early.

Reply via email to