http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55975
--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-18 13:02:41 UTC --- But why doesn't the 1 << 41 version work with both 44 and 46-bit VA? It should be: || `[0x0a0000000000, 0x3fffffffffff]` || HighMem || || `[0x034000000000, 0x09ffffffffff]` || HighShadow || || `[0x024000000000, 0x033fffffffff]` || ShadowGap || || `[0x020000000000, 0x023fffffffff]` || LowShadow || || `[0x000000000000, 0x01ffffffffff]` || LowMem || then, which IMHO should work just fine even if 0x100000000000 through 0x3fffffffffff is unavailable.