The attached testcase fails on i386-linux (as well as x86_64-linux -m32). It computes the p + (MAP_LEN / 0x100) * 0x100 end pointer, but instead of doing unsigned comparison on the pointers, it does a signed one, which obviously doesn't work if the pointer has topmost bit set.
Created attachment 9007 [details] testcase
This is a known bug, see gcc.c-torture/execute/loop-2e.c. This is a dup of bug 16052. *** This bug has been marked as a duplicate of 16052 ***