https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120477
Bug ID: 120477
Summary: arith_overflow_check_p has a special case for
COND_EXPR but it is dead
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: internal-improvement
Severity: enhancement
Priority: P3
Component: tree-optimization
Assignee: pinskia at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Target Milestone: ---
arith_overflow_check_p does the following for COND_EXPR gimple assignment:
```
else if (gimple_assign_rhs_code (cur_use_stmt) == COND_EXPR)
{
tree cond = gimple_assign_rhs1 (cur_use_stmt);
if (COMPARISON_CLASS_P (cond))
{
ccode = TREE_CODE (cond);
crhs1 = TREE_OPERAND (cond, 0);
crhs2 = TREE_OPERAND (cond, 1);
}
else
return 0;
}
```
But cond here will always be a SSA_NAME (or a constant) so we always get a
return 0.
Which case should be ok, and the code is just dead as we would have processed
the comparison already.