------- Comment #4 from burnus at gcc dot gnu dot org 2010-09-22 07:45 ------- (In reply to comment #3) > Confirmed as a regression:
The assert is in gfc_conv_expr_op: gcc_assert (expr->value.op.op1->ts.type == expr->value.op.op2->ts.type); For mask = (rnd(parsize) < popcross) the OP is INTRINSIC_LT and both op1 and op2 are BT_REAL; however, with -O1, op1 is BT_LOGICAL. If one disables "frontend-passes.c" by adding a return to gfc_run_passes, it works. -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tkoenig at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Known to fail| |4.6.0 Known to work| |4.5.0 Last reconfirmed|0000-00-00 00:00:00 |2010-09-22 07:45:44 date| | Summary|internal compiler error: in |[4.6 Regression] ICE with - |gfc_conv_expr_op, at |O1 in gfc_conv_expr_op, at |fortran/trans-expr.c:1366 |fortran/trans-expr.c:1366 Target Milestone|--- |4.6.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744