http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55975
--- Comment #25 from Kostya Serebryany <kcc at gcc dot gnu.org> 2013-01-23 12:21:51 UTC --- So, what is our decision? Are we just doing - static const uptr kHighMemEnd = 0x00000fffffffffffUL; + static const uptr kHighMemEnd = 0x00003fffffffffffUL; , leaving SHADOW_OFFSET=(1ULL << 41) and using ADD instead of OR when applying SHADOW_OFFSET? This seems to work on my ppc box (44-bit) with LLVM (I've changed it to use ADD on PPC)