This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/82244] [7/8 Regression] -O2: ICE: tree check: expected ssa_name, have integer_cst in replace_uses_by, at tree-cfg.c:1904


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82244

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
           Priority|P3                          |P2
      Known to work|                            |6.4.0
   Target Milestone|---                         |7.3
            Summary|-O2: ICE: tree check:       |[7/8 Regression] -O2: ICE:
                   |expected ssa_name, have     |tree check: expected
                   |integer_cst in              |ssa_name, have integer_cst
                   |replace_uses_by, at         |in replace_uses_by, at
                   |tree-cfg.c:1904             |tree-cfg.c:1904

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
So we're creating

  <bb 10> [9.35%] [count: INV]:
  f_26 = ASSERT_EXPR <f_7(ab), (unsigned int) f_7(ab) <= 4294967289>;
  _2 = f_26 & 2;
  if (_2 != 0)
    goto <bb 11>; [33.00%] [count: INV]
  else
    goto <bb 12>; [67.00%] [count: INV]

  <bb 11> [3.08%] [count: INV]:
  f_27 = ASSERT_EXPR <f_26, (unsigned int) f_26 + 4294967294 <= 4294967293>;
  f_28(ab) = ASSERT_EXPR <f_27, f_27 != 0>;
  h ();

where we are able to fold f_26 to zero and thus end up with

  f_28(ab) = ASSERT_EXPR <0, 0 != 0>;

when we are trying to get rid of asserts.  But we may not propagate the
constant.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]