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

Reply via email to