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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
These functions have the same code gen though:
inline signed char arr[256];

bool f(unsigned long a, unsigned long b) {
    return arr[a+128] == arr[b+128];
}

bool g(unsigned long a, unsigned long b) {
    return (arr+128)[a] == (arr+128)[b];
}

----- CUT -----
The reason why int is not equivalent because signed integer overflow is
undefined plus doing the math in 64bit or 32bit would cause a huge difference
in some cases.

Reply via email to