[libcxx-commits] [libcxx] eaa4f04 - [libc++] Use numeric_limits instead of raw INT_MAX

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Fri Nov 18 08:32:25 PST 2022


Author: Louis Dionne
Date: 2022-11-18T11:32:14-05:00
New Revision: eaa4f041f7864d9612ac2167cbe8925b2ea017d1

URL: https://github.com/llvm/llvm-project/commit/eaa4f041f7864d9612ac2167cbe8925b2ea017d1
DIFF: https://github.com/llvm/llvm-project/commit/eaa4f041f7864d9612ac2167cbe8925b2ea017d1.diff

LOG: [libc++] Use numeric_limits instead of raw INT_MAX

This allows discard_block_engine to work on platforms that might not
provide a full <limits.h> header.

Differential Revision: https://reviews.llvm.org/D138212

Added: 
    

Modified: 
    libcxx/include/__random/discard_block_engine.h
    libcxx/include/random
    libcxx/test/libcxx/transitive_includes/cxx2b.csv

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__random/discard_block_engine.h b/libcxx/include/__random/discard_block_engine.h
index 57f454b560d22..db33623d94851 100644
--- a/libcxx/include/__random/discard_block_engine.h
+++ b/libcxx/include/__random/discard_block_engine.h
@@ -12,8 +12,8 @@
 #include <__config>
 #include <__random/is_seed_sequence.h>
 #include <__utility/move.h>
-#include <climits>
 #include <iosfwd>
+#include <limits>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -33,7 +33,9 @@ class _LIBCPP_TEMPLATE_VIS discard_block_engine
 
     static_assert(  0 <  __r, "discard_block_engine invalid parameters");
     static_assert(__r <= __p, "discard_block_engine invalid parameters");
-    static_assert(__r <= INT_MAX, "discard_block_engine invalid parameters");
+#ifndef _LIBCPP_CXX03_LANG // numeric_limits::max() is not constexpr in C++03
+    static_assert(__r <= numeric_limits<int>::max(), "discard_block_engine invalid parameters");
+#endif
 public:
     // types
     typedef typename _Engine::result_type result_type;

diff  --git a/libcxx/include/random b/libcxx/include/random
index f8077f10c17f3..5fe4906cb0270 100644
--- a/libcxx/include/random
+++ b/libcxx/include/random
@@ -1729,6 +1729,7 @@ class piecewise_linear_distribution
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <climits>
 #  include <cmath>
 #  include <concepts>
 #  include <cstddef>

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b.csv b/libcxx/test/libcxx/transitive_includes/cxx2b.csv
index b00cba3aa7a8f..c8750c2703f2d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b.csv
@@ -502,7 +502,6 @@ queue type_traits
 queue vector
 queue version
 random bit
-random climits
 random cmath
 random cstddef
 random cstdint


        


More information about the libcxx-commits mailing list