Hi, build_common_builtin_nodes declares both __builtin_alloca and __builtin_alloca_with_align to have library name "alloca". This actually triggers warning in an updated ODR violation detector on "alloca" being declared twice.
__builtin_alloca_with_align IMO do not have library equivalent and I think this is a pasto (__builtin_alloca_with_align is not documented in extend.texi). It is not clear to me if there was some intention behind this oddity though. I have bootstrapped/regtested x86_64 with the following. OK? Honza * tree.c (build_common_builtin_nodes): Do not build __builtin_alloca_with_align as equivalent of library alloca. Index: tree.c =================================================================== --- tree.c (revision 222391) +++ tree.c (working copy) @@ -10088,7 +10098,8 @@ build_common_builtin_nodes (void) ftype = build_function_type_list (ptr_type_node, size_type_node, size_type_node, NULL_TREE); local_define_builtin ("__builtin_alloca_with_align", ftype, - BUILT_IN_ALLOCA_WITH_ALIGN, "alloca", + BUILT_IN_ALLOCA_WITH_ALIGN, + "__builtin_alloca_with_align", ECF_MALLOC | ECF_NOTHROW | ECF_LEAF); /* If we're checking the stack, `alloca' can throw. */