https://gcc.gnu.org/g:562416d8131dc9eeb4a778e7ef476157dbd9afd2
commit r15-8450-g562416d8131dc9eeb4a778e7ef476157dbd9afd2 Author: Jonathan Wakely <jwak...@redhat.com> Date: Mon Mar 17 15:02:12 2025 +0000 libstdc++: Make <stdbit.h> test use <climits> instead of <limits.h> Our <climits> ensures that LLONG_MIN, LLONG_MAX, and ULLONG_MAX are defined even if the C library's <limits.h> doesn't define them. Our <limits.h> then includes <climits>, which should mean that <limits.h> and <climits> always define the same macros. However, we only install our own version of <limits.h> for --enable-cheaders=c and not for the default --enable-cheaders=c_global setting that everybody uses. This means that if the C library's <limits.h> is not C++-aware, or if the C library doesn't provide it and GCC's own gcc/glimits.h is used instead, then <climits> defines the macros for long long types but <limits.h> does not. This causes the new 20_util/stdbit/1.cc test to fail for arm-non-eabi because it uses gcc/glimits.h which is not C++-aware, only checking __STDC_VERSION__ when deciding whether to declare the long long macros. If gcc/glimits.h also checked __cplusplus it would be OK, and we would not need our own <limits.h> to be installed. This commit just changes the new test to use <climits> instead of <limits.h>, but we should ensure that gcc/glimits.h is made to work (i.e. define the long long macros) for C++, and/or install our own <limits.h> for the --enable-cheaders=c_global configuration. libstdc++-v3/ChangeLog: * testsuite/20_util/stdbit/1.cc: Include <climits> instead of <limits.h>. Diff: --- libstdc++-v3/testsuite/20_util/stdbit/1.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/testsuite/20_util/stdbit/1.cc b/libstdc++-v3/testsuite/20_util/stdbit/1.cc index c9f2b599d0dc..304b3257d60e 100644 --- a/libstdc++-v3/testsuite/20_util/stdbit/1.cc +++ b/libstdc++-v3/testsuite/20_util/stdbit/1.cc @@ -16,7 +16,7 @@ #endif #include <testsuite_hooks.h> -#include <limits.h> +#include <climits> void test_leading_zeros()