From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x2e.google.com (mail-oa1-x2e.google.com [IPv6:2001:4860:4864:20::2e]) by sourceware.org (Postfix) with ESMTPS id 757FE385AC2C for ; Mon, 29 Aug 2022 19:00:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 757FE385AC2C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-11eb44f520dso7274841fac.10 for ; Mon, 29 Aug 2022 12:00:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc; bh=vjIWvLV7T/3EDETpueWcfQgh4grfm7yeblRjyc/ZccU=; b=XXM4XAI5qGDBpM9mw1QxUd4Dsm7+aZTldE+su+jiHuI0E6lV8Vzedp8lCcF4mdb/Wp TY8bW4HwzBbgTSpoYWzn78N2O2kZRBfjE0e0cojwdRKqeJPFlfqq6bLPgG9Y0KbwhQb6 paOk7QQic07O+NXquTq/QEFQ3jDQXx7t5KiK4IRqX5KTKwvDbKWNdsbMuJmxWv6PT0Fm h9zh/2md1agd/OQh6vcPEf9YersH+A+9auK50DducBQycr0H0Q0Mp05YKjMhoEd6JPbT wiJ3HG9k7XnZoMgbRHoUJJ6LQ6HkuU8MFvrSmagHPhtwXRt8DXMatsrtPmLWy3ZRD2F9 PbRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc; bh=vjIWvLV7T/3EDETpueWcfQgh4grfm7yeblRjyc/ZccU=; b=HDWBJo3fKM5VW6yeExBsPz/SYXcDV72VobbT4GIw1xnBnWQK+sZVeo/boRL13DpPLe oRf4a7UrH6GUqRZ+EXmnZUaVKi0E7I9OXmh/5YrKZWnC8i+JESoFkDBpm+y3a/omLGOV jYMjl5eVJQuFF5M39xAH1q75lcRlvRUS85qjibvP5NQTPGRkBcqiq45cYFy5DsK6loiP U0eqtMhaw7H3BVc+ZhmoaTlqkg+rKUfPPnaNSaV9a8d5fM52/jNzRmcta8n7HQ9gn0ZN skHuWUXY9HjatJdDaMYvnk+TWlf4oOzOJXTb3q4lXN19GkdxiRLkAxG8vjTUKDCbcSSW UxbA== X-Gm-Message-State: ACgBeo11CwquwXHBiPSWE7dNq4cR53lK2Wtunoxn11JAjfR+WMQhglQ7 WqlGiHhOajA8xBzw1/TZ55TDe4kbAxKJsw== X-Google-Smtp-Source: AA6agR5rpdUFDHL4R70x4INYcuHQ50ye8Pg0LQQYVqMPhvo9X6t5SuE49BaUiN8t4Ocn2y+rWT9r6A== X-Received: by 2002:a05:6871:1c1:b0:11c:4de9:1f41 with SMTP id q1-20020a05687101c100b0011c4de91f41mr8067792oad.226.1661799640934; Mon, 29 Aug 2022 12:00:40 -0700 (PDT) Received: from mandiga.. ([2804:1b3:a7c0:745e:ead4:6d93:6ff:7ce5]) by smtp.gmail.com with ESMTPSA id m4-20020a4ad504000000b00425678b9c4bsm5576307oos.0.2022.08.29.12.00.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Aug 2022 12:00:40 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH] posix: Fix macro expansion producing 'defined' has undefined behavior Date: Mon, 29 Aug 2022 16:00:37 -0300 Message-Id: <20220829190037.946720-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The NEED_CHECK_SPEC is defined as: #define NEED_CHECK_SPEC \ (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \ || !defined _XBS5_LP64_OFF64 || !defined _XBS5_LPBIG_OFFBIG \ || !defined _POSIX_V6_ILP32_OFF32 || !defined _POSIX_V6_ILP32_OFFBIG \ || !defined _POSIX_V6_LP64_OFF64 || !defined _POSIX_V6_LPBIG_OFFBIG \ || !defined _POSIX_V7_ILP32_OFF32 || !defined _POSIX_V7_ILP32_OFFBIG \ || !defined _POSIX_V7_LP64_OFF64 || !defined _POSIX_V7_LPBIG_OFFBIG) Which is undefined behavior accordingly to C Standard (Preprocessing directives, p4). Checked on x86_64-linux-gnu. --- sysdeps/posix/sysconf.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c index f760bf4e2b..c29b70ad80 100644 --- a/sysdeps/posix/sysconf.c +++ b/sysdeps/posix/sysconf.c @@ -37,13 +37,17 @@ #define NEED_SPEC_ARRAY 0 #include -#define NEED_CHECK_SPEC \ - (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \ +#if !defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \ || !defined _XBS5_LP64_OFF64 || !defined _XBS5_LPBIG_OFFBIG \ || !defined _POSIX_V6_ILP32_OFF32 || !defined _POSIX_V6_ILP32_OFFBIG \ || !defined _POSIX_V6_LP64_OFF64 || !defined _POSIX_V6_LPBIG_OFFBIG \ || !defined _POSIX_V7_ILP32_OFF32 || !defined _POSIX_V7_ILP32_OFFBIG \ - || !defined _POSIX_V7_LP64_OFF64 || !defined _POSIX_V7_LPBIG_OFFBIG) + || !defined _POSIX_V7_LP64_OFF64 || !defined _POSIX_V7_LPBIG_OFFBIG +# define NEED_CHECK_SPEC 1 +#else +# define NEED_CHECK_SPEC 0 +#endif + #if NEED_CHECK_SPEC static long int __sysconf_check_spec (const char *spec); #endif -- 2.34.1