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

--- Comment #7 from Andrew Macleod <amacleod at redhat dot com> ---
The op1-range expression solving for the RHS of a cast of the form

low_precision_var = (low_precision) high_precision_var

doesnt support pointers properly.

It fills in possible bit/ranges in high_precision_var when calculating outgoing
edge ranges and
   a) doesnt work for pointers (thus this trap.. there is no PLUS on pointers,
only POINTER_PLUS)
   b) is also overkill for pointers where mostly we care about zero, non-zero
and varying.

SO, fix operator_cast::op1_range()  to handle pointers better...

potential change are in testing now.

Reply via email to