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()

Reply via email to