[Bug tree-optimization/83296] missing -Wstringop-overflow due to missing range info for MAX_EXPR

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 7 10:25:00 GMT 2017


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2017-12-07
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Happens because:

  /* Create an SSA var to hold the min/max result.  If we're the only
     things setting the target PHI, then we  can clone the PHI
     variable.  Otherwise we must create a new one.  */
  result = PHI_RESULT (phi);
  if (EDGE_COUNT (gimple_bb (phi)->preds) == 2)
    result = duplicate_ssa_name (result, NULL);
  else
    result = make_ssa_name (TREE_TYPE (result));

  /* Emit the statement to compute min/max.  */
  new_stmt = gimple_build_assign (result, minmax, arg0, arg1);
  gsi = gsi_last_bb (cond_bb);
  gsi_insert_before (&gsi, new_stmt, GSI_NEW_STMT);

  replace_phi_edge_with_variable (cond_bb, e1, phi, result);

ok until here but then:

  reset_flow_sensitive_info_in_bb (cond_bb);

added by r228341.  I don't see immediately why we need that - it resets
flow-sensitive info in the BB of the conditional not in a block only
dominated by the true/false edge.

I have a patch.


More information about the Gcc-bugs mailing list