C++11 code in the gcc 10 branch

Richard Sandiford richard.sandiford@arm.com
Mon Dec 21 14:49:24 GMT 2020


FX via Gcc <gcc@gcc.gnu.org> writes:
> I’m trying to bootstrap a GCC 10 compiler on macOS with clang, and I am getting errors in stage 1, because there is C++11 code that is rejected by clang (because the bootstrap involves compiling stage 1 with -std=gnu++98, online on master (see top-level configure.ac). These errors are not seen, I believe, when GCC is the bootstrap compiler, because GCC will issue a warning instead of an error (as clang does).
>
> One place with such issue is in aarch64-builtins.c, which contains a C++11 constructor. I can fix it with this:
>
> diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
> index cba596765..184e9095d 100644
> --- a/gcc/config/aarch64/aarch64-builtins.c
> +++ b/gcc/config/aarch64/aarch64-builtins.c
> @@ -1225,8 +1225,9 @@ aarch64_init_memtag_builtins (void)
>      = aarch64_general_add_builtin ("__builtin_aarch64_memtag_"#N, \
>                                    T, AARCH64_MEMTAG_BUILTIN_##F); \
>    aarch64_memtag_builtin_data[AARCH64_MEMTAG_BUILTIN_##F - \
> -                             AARCH64_MEMTAG_BUILTIN_START - 1] = \
> -                               {T, CODE_FOR_##I};
> +                             AARCH64_MEMTAG_BUILTIN_START - 1].ftype = T; \
> +  aarch64_memtag_builtin_data[AARCH64_MEMTAG_BUILTIN_##F - \
> +                             AARCH64_MEMTAG_BUILTIN_START - 1].icode = CODE_FOR_##I;
>  
>    fntype = build_function_type_list (ptr_type_node, ptr_type_node,
>                                      uint64_type_node, NULL);
>
> […stuff that Iain has already answered…]
>
> I would welcome:
>
> 1. confirmation that the C++11 code in aarch64-builtins.c is indeed a bug, and that a patch for it would be welcome

Yeah, it's definitely a bug, thanks for catching it.  The patch above
is OK.

Thanks,
Richard


More information about the Gcc mailing list