http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55309
--- Comment #39 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-12 11:42:33 UTC --- So, if Darwin keeps the old 1ULL << 44, then the corresponding gcc change (to be applied together with asan merge) would be something like (untested): --- gcc/sanitizer.def 2013-01-11 09:02:37.879637130 +0100 +++ gcc/sanitizer.def 2013-02-12 12:39:12.743272092 +0100 @@ -27,7 +27,7 @@ along with GCC; see the file COPYING3. for other FEs by asan.c. */ /* Address Sanitizer */ -DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_INIT, "__asan_init", +DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_INIT, "__asan_init_v1", BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) /* Do not reorder the BUILT_IN_ASAN_REPORT* builtins, e.g. cfgcleanup.c relies on this order. */ --- gcc/config/i386/i386.c 2013-02-12 11:23:35.400193705 +0100 +++ gcc/config/i386/i386.c 2013-02-12 12:38:30.775503155 +0100 @@ -5436,7 +5436,9 @@ ix86_legitimate_combined_insn (rtx insn) static unsigned HOST_WIDE_INT ix86_asan_shadow_offset (void) { - return (unsigned HOST_WIDE_INT) 1 << (TARGET_LP64 ? 44 : 29); + return TARGET_LP64 ? (TARGET_MACHO ? (HOST_WIDE_INT_1 << 44) + : HOST_WIDE_INT_C (0x7fff8000)) + : (HOST_WIDE_INT_1 << 29); } /* Argument support functions. */