http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54702
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-09-25 12:01:11 UTC --- the malloc and __builtin_malloc variant now enter symbol merging. Fixing that doesn't fix the issue, but the following seems "correct" anyway: Index: gcc/lto-symtab.c =================================================================== --- gcc/lto-symtab.c (revision 191694) +++ gcc/lto-symtab.c (working copy) @@ -610,7 +610,9 @@ lto_symtab_merge_decls (void) FOR_EACH_SYMBOL (node) if (TREE_PUBLIC (node->symbol.decl) && node->symbol.next_sharing_asm_name - && !node->symbol.previous_sharing_asm_name) + && !node->symbol.previous_sharing_asm_name + && (!symtab_function_p (node) + || !DECL_BUILT_IN (node->symbol.decl))) lto_symtab_merge_decls_1 (node); } looking if that fixes my LTO bootstrap issue with alloca.