------- Comment #3 from eedelman at gcc dot gnu dot org 2006-02-04 17:11 ------- If I compile the original testcase with current mainline (revision 110561), the binary dies on execution with
*** glibc detected *** double free or corruption (out): 0xbfc9d020 *** Aborted If I remove the line print*,x(5) the program runs and outputs 0.000000 0.000000 0.000000 0.000000 0.000000 This trivial patch fixes the latter problem: --------------------- Index: trans-expr.c =================================================================== --- trans-expr.c (revision 110590) +++ trans-expr.c (working copy) @@ -2912,6 +2912,9 @@ gfc_trans_arrayfunc_assign (gfc_expr * e if (gfc_ref_needs_temporary_p (expr1->ref)) return NULL; + if (expr2->symtree->n.sym->attr.pointer) + return NULL; + /* Check that no LHS component references appear during an array reference. This is needed because we do not have the means to span any arbitrary stride with an array descriptor. This check ------------------------------------ I'll try to see if I can fix the other problem too. -- eedelman at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |eedelman at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25806