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

Andrew Macleod <amacleod at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |amacleod at redhat dot 
com

--- Comment #3 from Andrew Macleod <amacleod at redhat dot com> ---
Created attachment 49327
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49327&action=edit
patch to always evaluate in unsigned

The range-op code for handling FFS and popcount doesn't take into account a
possibly negative parameter. 


The code was simply using the upper bound, which for [-65535, 0] was 0, we we
were getting a range o f[0, 0] instead of [0,32]

fix is to cast the range to unsigned before doing such calculation.

I'll add this patch to the test cycle.

Reply via email to