------- Comment #2 from mikael at gcc dot gnu dot org 2010-08-22 19:41 ------- (In reply to comment #1) > It seems that the a /= a is simplified to a constant scalar value which > triggers the assert. > The culprit seems the recent frontend optimization pass. Here is a work-around, but it would be better to have these optimizations working with arrays.
Index: frontend-passes.c =================================================================== --- frontend-passes.c (r��vision 163459) +++ frontend-passes.c (copie de travail) @@ -399,6 +399,9 @@ return true; } + if (e->rank > 0) + return false; + /* Check for direct comparison between identical variables. Don't compare REAL or COMPLEX because of NaN checks. */ if (op1->expr_type == EXPR_VARIABLE By the way, this also fixes runtime failures with widechar_intrinsics_5.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45380