On Wed, 13 Nov 2024, Christophe Lyon wrote:
> We recently forced -Werror when building libgcc for aarch64, to make
> sure we'd catch and fix the kind of problem described in the PR.
>
> In this case, when building for aarch64_be (so, big endian), gcc emits
> this warning/error:
> libgcc/config/libbid/bid_conf.h:847:25: error: missing braces around
> initializer [-Werror=missing-braces]
> 847 | UINT128 arg_name={ bid_##arg_name.w[1], bid_##arg_name.w[0]};
> libgcc/config/libbid/bid_conf.h:871:8: note: in expansion of macro
> 'COPY_ARG_VAL'
> 871 | COPY_ARG_VAL(arg_name)
>
> This patch fixes the problem by adding curly braces around the
> initializer for COPY_ARG_VAL in the big endian case.
>
> It seems that COPY_ARG_REF (just above COPY_ARG_VAL) has a similar
> issue, but DECIMAL_CALL_BY_REFERENCE seems always defined to 0, so
> COPY_ARG_REF is never used. The patch fixes it too, though.
OK.
Richard.
> libgcc/config/libbid/ChangeLog:
>
> PR libgcc/117537
> * bid_conf.h (COPY_ARG_REF): Fix initializer.
> (COPY_ARG_VAL): Likewise.
> ---
> libgcc/config/libbid/bid_conf.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libgcc/config/libbid/bid_conf.h b/libgcc/config/libbid/bid_conf.h
> index e054a3ff570..5414ee1d2bd 100644
> --- a/libgcc/config/libbid/bid_conf.h
> +++ b/libgcc/config/libbid/bid_conf.h
> @@ -842,9 +842,9 @@ extern BID_THREAD _IDEC_excepthandling
> _IDEC_glbexcepthandling;
>
> #if BID_BIG_ENDIAN
> #define COPY_ARG_REF(arg_name) \
> - UINT128 arg_name={ pbid_##arg_name->w[1], pbid_##arg_name->w[0]};
> + UINT128 arg_name={ { pbid_##arg_name->w[1], pbid_##arg_name->w[0] }};
> #define COPY_ARG_VAL(arg_name) \
> - UINT128 arg_name={ bid_##arg_name.w[1], bid_##arg_name.w[0]};
> + UINT128 arg_name={ { bid_##arg_name.w[1], bid_##arg_name.w[0] }};
> #else
> #define COPY_ARG_REF(arg_name) \
> UINT128 arg_name=*pbid_##arg_name;
>
--
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)