https://gcc.gnu.org/g:13a966d56fe60418cf88c11cbd45797f1cbfed5f

commit r15-5233-g13a966d56fe60418cf88c11cbd45797f1cbfed5f
Author: Christophe Lyon <christophe.l...@linaro.org>
Date:   Wed Nov 13 21:20:13 2024 +0000

    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.

Diff:
---
 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;

Reply via email to