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

Namniav <namniav at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |namniav at gmail dot com

--- Comment #34 from Namniav <namniav at gmail dot com> ---
I'd like to provide a more subtle example:

#include <stdio.h>
#include <stdint.h>

int main() {    
    int a = -1;
    int b = -1;
    uintptr_t ia = (uintptr_t)&a;
    uintptr_t ib = (uintptr_t)(&b + 1);
    if (ia == ib) {
        *(int*)(ia == ib ? ia : ib) = 42;
        printf("%d\n", a);
    }
    return 0;
}

It prints -1 compiled by gcc -O1 (https://godbolt.org/z/ecf4Kjc16).

Reply via email to