https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65752
--- Comment #40 from Alexander Cherepanov <ch3root at openwall dot com> --- Ok, this program: #include <stdint.h> #include <stdio.h> int main() { int y, x = 0; int *volatile v = &x; int *xp = v; int *i = &y + 1; if (xp != i) { printf("hello\n"); xp = i; } printf("%d\n", xp == &x); } print 0 too even though it should print 1.