From 13a966d56fe60418cf88c11cbd45797f1cbfed5f Mon Sep 17 00:00:00 2001 From: Christophe Lyon <christophe.lyon@linaro.org> Date: Wed, 13 Nov 2024 21:20:13 +0000 Subject: [PATCH] libgcc: Fix COPY_ARG_VAL initializer (PR 117537) 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. 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 587713d92214..1c12c1bd830f 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; -- GitLab