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