diff --git a/libc/src/__support/CMakeLists.txt b/libc/src/__support/CMakeLists.txt index 66e4d808333fd..2e5a026bf423c 100644 --- a/libc/src/__support/CMakeLists.txt +++ b/libc/src/__support/CMakeLists.txt @@ -205,6 +205,7 @@ add_header_library( libc.src.__support.CPP.bit libc.src.__support.CPP.type_traits libc.src.__support.macros.optimization + libc.src.__support.macros.properties.types ) add_header_library( @@ -213,6 +214,7 @@ add_header_library( UInt128.h DEPENDS .uint + libc.src.__support.macros.properties.types ) add_header_library( diff --git a/libc/src/__support/CPP/CMakeLists.txt b/libc/src/__support/CPP/CMakeLists.txt index 6c35bc7090819..6216505eae23a 100644 --- a/libc/src/__support/CPP/CMakeLists.txt +++ b/libc/src/__support/CPP/CMakeLists.txt @@ -49,6 +49,7 @@ add_header_library( DEPENDS .type_traits libc.include.llvm-libc-macros.limits_macros + libc.src.__support.macros.properties.types ) add_header_library( diff --git a/libc/src/__support/CPP/limits.h b/libc/src/__support/CPP/limits.h index 1ffde5f9556f8..5b9b3e755c72b 100644 --- a/libc/src/__support/CPP/limits.h +++ b/libc/src/__support/CPP/limits.h @@ -12,7 +12,8 @@ #include "include/llvm-libc-macros/limits-macros.h" // CHAR_BIT #include "src/__support/CPP/type_traits/is_integral.h" #include "src/__support/CPP/type_traits/is_signed.h" -#include "src/__support/macros/attributes.h" // LIBC_INLINE +#include "src/__support/macros/attributes.h" // LIBC_INLINE +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 namespace LIBC_NAMESPACE { namespace cpp { @@ -76,7 +77,7 @@ template <> struct numeric_limits : public internal::integer_impl {}; -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 // On platform where UInt128 resolves to __uint128_t, this specialization // provides the limits of UInt128. template <> diff --git a/libc/src/__support/CPP/type_traits/is_integral.h b/libc/src/__support/CPP/type_traits/is_integral.h index 2808be594b20e..68e16ff841833 100644 --- a/libc/src/__support/CPP/type_traits/is_integral.h +++ b/libc/src/__support/CPP/type_traits/is_integral.h @@ -11,6 +11,7 @@ #include "src/__support/CPP/type_traits/is_same.h" #include "src/__support/CPP/type_traits/remove_cv.h" #include "src/__support/macros/attributes.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 namespace LIBC_NAMESPACE::cpp { @@ -25,7 +26,7 @@ template struct is_integral { public: LIBC_INLINE_VAR static constexpr bool value = __is_unqualified_any_of< T, -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 __int128_t, __uint128_t, #endif char, signed char, unsigned char, short, unsigned short, int, diff --git a/libc/src/__support/CPP/type_traits/make_signed.h b/libc/src/__support/CPP/type_traits/make_signed.h index 21302850bfd4a..4652d8b6bfa56 100644 --- a/libc/src/__support/CPP/type_traits/make_signed.h +++ b/libc/src/__support/CPP/type_traits/make_signed.h @@ -9,6 +9,7 @@ #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_MAKE_SIGNED_H #include "src/__support/CPP/type_traits/type_identity.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 namespace LIBC_NAMESPACE::cpp { @@ -26,7 +27,7 @@ template <> struct make_signed : type_identity {}; template <> struct make_signed : type_identity {}; template <> struct make_signed : type_identity {}; -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 template <> struct make_signed<__int128_t> : type_identity<__int128_t> {}; template <> struct make_signed<__uint128_t> : type_identity<__int128_t> {}; #endif diff --git a/libc/src/__support/CPP/type_traits/make_unsigned.h b/libc/src/__support/CPP/type_traits/make_unsigned.h index 20948014a6657..1e814ae002a77 100644 --- a/libc/src/__support/CPP/type_traits/make_unsigned.h +++ b/libc/src/__support/CPP/type_traits/make_unsigned.h @@ -9,6 +9,7 @@ #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_MAKE_UNSIGNED_H #include "src/__support/CPP/type_traits/type_identity.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 namespace LIBC_NAMESPACE::cpp { @@ -31,7 +32,7 @@ template <> struct make_unsigned : type_identity {}; template <> struct make_unsigned : type_identity {}; -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 template <> struct make_unsigned<__int128_t> : type_identity<__uint128_t> {}; template <> struct make_unsigned<__uint128_t> : type_identity<__uint128_t> {}; #endif diff --git a/libc/src/__support/UInt.h b/libc/src/__support/UInt.h index 94c8d86fd7649..c49c8314cd495 100644 --- a/libc/src/__support/UInt.h +++ b/libc/src/__support/UInt.h @@ -14,9 +14,10 @@ #include "src/__support/CPP/limits.h" #include "src/__support/CPP/optional.h" #include "src/__support/CPP/type_traits.h" -#include "src/__support/macros/attributes.h" // LIBC_INLINE -#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY -#include "src/__support/math_extras.h" // SumCarry, DiffBorrow +#include "src/__support/macros/attributes.h" // LIBC_INLINE +#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 +#include "src/__support/math_extras.h" // SumCarry, DiffBorrow #include "src/__support/number_pair.h" #include // For size_t @@ -30,9 +31,9 @@ template struct half_width; template <> struct half_width : cpp::type_identity {}; template <> struct half_width : cpp::type_identity {}; template <> struct half_width : cpp::type_identity {}; -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 template <> struct half_width<__uint128_t> : cpp::type_identity {}; -#endif // __SIZEOF_INT128__ +#endif // LIBC_TYPES_HAS_INT128 template using half_width_t = typename half_width::type; @@ -69,7 +70,7 @@ LIBC_INLINE constexpr NumberPair full_mul(uint32_t a, return result; } -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 template <> LIBC_INLINE constexpr NumberPair full_mul(uint64_t a, uint64_t b) { @@ -79,7 +80,7 @@ LIBC_INLINE constexpr NumberPair full_mul(uint64_t a, result.hi = uint64_t(prod >> 64); return result; } -#endif // __SIZEOF_INT128__ +#endif // LIBC_TYPES_HAS_INT128 } // namespace internal @@ -682,7 +683,7 @@ struct BigInt { val[1] = uint32_t(tmp >> 32); return; } -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 if constexpr ((Bits == 128) && (WORD_SIZE == 64)) { // Use builtin 128 bits if available; if (s >= 128) { @@ -696,7 +697,7 @@ struct BigInt { val[1] = uint64_t(tmp >> 64); return; } -#endif // __SIZEOF_INT128__ +#endif // LIBC_TYPES_HAS_INT128 if (LIBC_UNLIKELY(s == 0)) return; @@ -753,7 +754,7 @@ struct BigInt { val[1] = uint32_t(tmp >> 32); return; } -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 if constexpr ((Bits == 128) && (WORD_SIZE == 64)) { // Use builtin 128 bits if available; if (s >= 128) { @@ -771,7 +772,7 @@ struct BigInt { val[1] = uint64_t(tmp >> 64); return; } -#endif // __SIZEOF_INT128__ +#endif // LIBC_TYPES_HAS_INT128 if (LIBC_UNLIKELY(s == 0)) return; diff --git a/libc/src/__support/UInt128.h b/libc/src/__support/UInt128.h index 06696b7a61581..b6ef9ca18eb01 100644 --- a/libc/src/__support/UInt128.h +++ b/libc/src/__support/UInt128.h @@ -10,13 +10,14 @@ #define LLVM_LIBC_SRC___SUPPORT_UINT128_H #include "UInt.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 -#if defined(__SIZEOF_INT128__) +#ifdef LIBC_TYPES_HAS_INT128 using UInt128 = __uint128_t; using Int128 = __int128_t; #else using UInt128 = LIBC_NAMESPACE::UInt<128>; using Int128 = LIBC_NAMESPACE::Int<128>; -#endif +#endif // LIBC_TYPES_HAS_INT128 #endif // LLVM_LIBC_SRC___SUPPORT_UINT128_H diff --git a/libc/src/__support/macros/properties/types.h b/libc/src/__support/macros/properties/types.h index 8760f78875c41..42345e4743cef 100644 --- a/libc/src/__support/macros/properties/types.h +++ b/libc/src/__support/macros/properties/types.h @@ -17,6 +17,8 @@ #include "src/__support/macros/properties/cpu_features.h" #include "src/__support/macros/properties/os.h" +#include // __SIZEOF_INT128__ + // 'long double' properties. #if (LDBL_MANT_DIG == 53) #define LIBC_TYPES_LONG_DOUBLE_IS_FLOAT64 @@ -26,6 +28,11 @@ #define LIBC_TYPES_LONG_DOUBLE_IS_FLOAT128 #endif +// int128 / uint128 support +#if defined(__SIZEOF_INT128__) +#define LIBC_TYPES_HAS_INT128 +#endif // defined(__SIZEOF_INT128__) + // -- float16 support --------------------------------------------------------- // TODO: move this logic to "llvm-libc-types/float16.h" #if defined(LIBC_TARGET_ARCH_IS_X86_64) && defined(LIBC_TARGET_CPU_HAS_SSE2) diff --git a/libc/test/UnitTest/CMakeLists.txt b/libc/test/UnitTest/CMakeLists.txt index 8a35f1204eb51..f7a6f4a91fabc 100644 --- a/libc/test/UnitTest/CMakeLists.txt +++ b/libc/test/UnitTest/CMakeLists.txt @@ -73,6 +73,7 @@ add_unittest_framework_library( libc.src.__support.CPP.string_view libc.src.__support.CPP.type_traits libc.src.__support.fixed_point.fx_rep + libc.src.__support.macros.properties.types libc.src.__support.OSUtil.osutil libc.src.__support.uint libc.src.__support.uint128 diff --git a/libc/test/UnitTest/LibcTest.cpp b/libc/test/UnitTest/LibcTest.cpp index 7dc85d0d4e2d7..03cd25191ecd5 100644 --- a/libc/test/UnitTest/LibcTest.cpp +++ b/libc/test/UnitTest/LibcTest.cpp @@ -13,6 +13,7 @@ #include "src/__support/CPP/string_view.h" #include "src/__support/UInt128.h" #include "src/__support/fixed_point/fx_rep.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 #include "test/UnitTest/TestLogger.h" #if __STDC_HOSTED__ @@ -215,11 +216,11 @@ TEST_SPECIALIZATION(bool); // We cannot just use a single UInt128 specialization as that resolves to only // one type, UInt<128> or __uint128_t. We want both overloads as we want to -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 // When builtin __uint128_t type is available, include its specialization // also. TEST_SPECIALIZATION(__uint128_t); -#endif +#endif // LIBC_TYPES_HAS_INT128 TEST_SPECIALIZATION(LIBC_NAMESPACE::Int<128>); diff --git a/libc/test/UnitTest/TestLogger.cpp b/libc/test/UnitTest/TestLogger.cpp index 32f0ec52041fd..4756188b46cb0 100644 --- a/libc/test/UnitTest/TestLogger.cpp +++ b/libc/test/UnitTest/TestLogger.cpp @@ -4,6 +4,7 @@ #include "src/__support/OSUtil/io.h" // write_to_stderr #include "src/__support/UInt.h" // is_big_int #include "src/__support/UInt128.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 #include @@ -72,9 +73,9 @@ template TestLogger &TestLogger::operator<< (unsigned long); template TestLogger & TestLogger::operator<< (unsigned long long); -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 template TestLogger &TestLogger::operator<< <__uint128_t>(__uint128_t); -#endif +#endif // LIBC_TYPES_HAS_INT128 template TestLogger &TestLogger::operator<< >(UInt<128>); template TestLogger &TestLogger::operator<< >(UInt<192>); template TestLogger &TestLogger::operator<< >(UInt<256>); diff --git a/libc/test/src/__support/CMakeLists.txt b/libc/test/src/__support/CMakeLists.txt index adbacb9728ccd..91dd0dc4decfe 100644 --- a/libc/test/src/__support/CMakeLists.txt +++ b/libc/test/src/__support/CMakeLists.txt @@ -106,8 +106,9 @@ if(NOT LIBC_TARGET_ARCHITECTURE_IS_NVPTX) SRCS uint_test.cpp DEPENDS - libc.src.__support.uint libc.src.__support.CPP.optional + libc.src.__support.macros.properties.types + libc.src.__support.uint ) endif() @@ -118,8 +119,9 @@ add_libc_test( SRCS integer_literals_test.cpp DEPENDS - libc.src.__support.integer_literals libc.src.__support.CPP.optional + libc.src.__support.integer_literals + libc.src.__support.macros.properties.types ) add_libc_test( diff --git a/libc/test/src/__support/CPP/CMakeLists.txt b/libc/test/src/__support/CPP/CMakeLists.txt index d7f332f5b0fbd..f94429e03b3cb 100644 --- a/libc/test/src/__support/CPP/CMakeLists.txt +++ b/libc/test/src/__support/CPP/CMakeLists.txt @@ -8,6 +8,7 @@ add_libc_test( bit_test.cpp DEPENDS libc.src.__support.CPP.bit + libc.src.__support.macros.properties.types libc.src.__support.uint ) @@ -49,6 +50,7 @@ add_libc_test( limits_test.cpp DEPENDS libc.src.__support.CPP.limits + libc.src.__support.macros.properties.types libc.src.__support.uint ) diff --git a/libc/test/src/__support/CPP/bit_test.cpp b/libc/test/src/__support/CPP/bit_test.cpp index da7bb3389b2f4..3deb1f41dcf88 100644 --- a/libc/test/src/__support/CPP/bit_test.cpp +++ b/libc/test/src/__support/CPP/bit_test.cpp @@ -8,6 +8,7 @@ #include "src/__support/CPP/bit.h" #include "src/__support/UInt.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 #include "test/UnitTest/Test.h" #include @@ -15,16 +16,16 @@ namespace LIBC_NAMESPACE::cpp { using UnsignedTypesNoBigInt = testing::TypeList< -#if defined(__SIZEOF_INT128__) +#if defined(LIBC_TYPES_HAS_INT128) __uint128_t, -#endif +#endif // LIBC_TYPES_HAS_INT128 unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long>; using UnsignedTypes = testing::TypeList< -#if defined(__SIZEOF_INT128__) +#if defined(LIBC_TYPES_HAS_INT128) __uint128_t, -#endif +#endif // LIBC_TYPES_HAS_INT128 unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, UInt<128>>; diff --git a/libc/test/src/__support/CPP/limits_test.cpp b/libc/test/src/__support/CPP/limits_test.cpp index d83e307fb1965..efcd6839d0733 100644 --- a/libc/test/src/__support/CPP/limits_test.cpp +++ b/libc/test/src/__support/CPP/limits_test.cpp @@ -8,6 +8,7 @@ #include "src/__support/CPP/limits.h" #include "src/__support/UInt.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 #include "test/UnitTest/Test.h" namespace LIBC_NAMESPACE { @@ -36,9 +37,9 @@ TEST(LlvmLibcLimitsTest, UInt128Limits) { auto umax64 = LIBC_NAMESPACE::UInt<128>(cpp::numeric_limits::max()); EXPECT_GT(umax128, umax64); ASSERT_EQ(~LIBC_NAMESPACE::UInt<128>(0), umax128); -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 ASSERT_EQ(~__uint128_t(0), cpp::numeric_limits<__uint128_t>::max()); -#endif +#endif // LIBC_TYPES_HAS_INT128 } } // namespace LIBC_NAMESPACE diff --git a/libc/test/src/__support/integer_literals_test.cpp b/libc/test/src/__support/integer_literals_test.cpp index b8b399d9cf407..5298cf30156e2 100644 --- a/libc/test/src/__support/integer_literals_test.cpp +++ b/libc/test/src/__support/integer_literals_test.cpp @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// #include "src/__support/integer_literals.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 #include "test/UnitTest/Test.h" using LIBC_NAMESPACE::operator""_u8; @@ -66,7 +67,7 @@ TEST(LlvmLibcIntegerLiteralTest, u64) { } TEST(LlvmLibcIntegerLiteralTest, u128) { -#if defined(__SIZEOF_INT128__) +#ifdef LIBC_TYPES_HAS_INT128 const __uint128_t ZERO = 0; const __uint128_t U8_MAX = UINT8_MAX; const __uint128_t U16_MAX = UINT16_MAX; @@ -80,7 +81,7 @@ TEST(LlvmLibcIntegerLiteralTest, u128) { const UInt128 U32_MAX = UINT32_MAX; const UInt128 U64_MAX = UINT64_MAX; const UInt128 U128_MAX = (U64_MAX << 64) | U64_MAX; -#endif +#endif // LIBC_TYPES_HAS_INT128 EXPECT_EQ(ZERO, 0_u128); EXPECT_EQ(U8_MAX, 255_u128); EXPECT_EQ(U8_MAX, 0xFF_u128); diff --git a/libc/test/src/__support/uint_test.cpp b/libc/test/src/__support/uint_test.cpp index eb1db9729cf4c..851656e9fcbbb 100644 --- a/libc/test/src/__support/uint_test.cpp +++ b/libc/test/src/__support/uint_test.cpp @@ -8,6 +8,7 @@ #include "src/__support/CPP/optional.h" #include "src/__support/UInt.h" +#include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128 #include "test/UnitTest/Test.h" #include // HUGE_VALF, HUGE_VALF @@ -41,7 +42,7 @@ TEST(LlvmLibcUIntClassTest, BitCastToFromDouble) { } } -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 TEST(LlvmLibcUIntClassTest, BitCastToFromNativeUint128) { static_assert(cpp::is_trivially_copyable::value); static_assert(sizeof(LL_UInt128) == sizeof(__uint128_t)); @@ -52,7 +53,7 @@ TEST(LlvmLibcUIntClassTest, BitCastToFromNativeUint128) { EXPECT_TRUE(value == forth); } } -#endif +#endif // LIBC_TYPES_HAS_INT128 #ifdef LIBC_TYPES_HAS_FLOAT128 TEST(LlvmLibcUIntClassTest, BitCastToFromNativeFloat128) { @@ -652,7 +653,7 @@ TEST(LlvmLibcUIntClassTest, BasicArithmeticInt128Tests) { ASSERT_EQ(c * b, b); } -#ifdef __SIZEOF_INT128__ +#ifdef LIBC_TYPES_HAS_INT128 TEST(LlvmLibcUIntClassTest, ConstructorFromUInt128Tests) { __uint128_t a = (__uint128_t(123) << 64) + 1; @@ -707,7 +708,7 @@ TEST(LlvmLibcUIntClassTest, WordTypeUInt128Tests) { EXPECT_TRUE(f == r); } -#endif // __SIZEOF_INT128__ +#endif // LIBC_TYPES_HAS_INT128 TEST(LlvmLibcUIntClassTest, OtherWordTypeTests) { using LL_UInt96 = BigInt<96, false, uint32_t>; diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index 127059c529ecd..5f6c43cd6af7c 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -211,6 +211,7 @@ libc_support_library( deps = [ "__support_cpp_type_traits", "__support_macros_attributes", + ":__support_macros_properties_types", ":llvm_libc_macros_limits_macros", ], ) @@ -449,6 +450,7 @@ libc_support_library( ":__support_cpp_type_traits", ":__support_macros_attributes", ":__support_macros_optimization", + ":__support_macros_properties_types", ":__support_math_extras", ":__support_number_pair", ], @@ -458,6 +460,7 @@ libc_support_library( name = "__support_uint128", hdrs = ["src/__support/UInt128.h"], deps = [ + ":__support_macros_properties_types", ":__support_uint", ], ) diff --git a/utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel index 37eb21c77e492..4a94916e1205e 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel @@ -17,6 +17,7 @@ libc_support_library( deps = [ "//libc:__support_cpp_string", "//libc:__support_cpp_string_view", + "//libc:__support_macros_properties_types", "//libc:__support_osutil_io", "//libc:__support_uint", "//libc:__support_uint128", @@ -52,6 +53,7 @@ libc_support_library( "//libc:__support_fputil_fpbits_str", "//libc:__support_fputil_rounding_mode", "//libc:__support_macros_properties_architectures", + "//libc:__support_macros_properties_types", "//libc:__support_stringutil", "//libc:__support_uint128", "//libc:errno", diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel index 19d4c7869799a..6837b9880d5a4 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel @@ -86,6 +86,7 @@ libc_test( srcs = ["uint_test.cpp"], deps = [ "//libc:__support_cpp_optional", + "//libc:__support_macros_properties_types", "//libc:__support_uint", ], ) @@ -111,5 +112,6 @@ libc_test( srcs = ["integer_literals_test.cpp"], deps = [ "//libc:__support_integer_literals", + "//libc:__support_macros_properties_types", ], ) diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel index 07d9ac1d50082..dad1c7708e448 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel @@ -27,6 +27,7 @@ libc_test( srcs = ["bit_test.cpp"], deps = [ "//libc:__support_cpp_bit", + "//libc:__support_macros_properties_types", "//libc:__support_uint", ], ) @@ -48,6 +49,7 @@ libc_test( srcs = ["limits_test.cpp"], deps = [ "//libc:__support_cpp_limits", + "//libc:__support_macros_properties_types", "//libc:__support_uint", ], )