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. */