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

Reply via email to