[libcxx-commits] [libcxx] 619f478 - [libc++][test] Fix size calculation for `unordered_map` in ABI test (#157006)

via libcxx-commits libcxx-commits at lists.llvm.org
Fri Sep 5 02:46:33 PDT 2025


Author: A. Jiang
Date: 2025-09-05T17:46:29+08:00
New Revision: 619f478d76d1e4039a6e089b3d71f5119bdc470c

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

LOG: [libc++][test] Fix size calculation for `unordered_map` in ABI test (#157006)

Currently,
`libcxx\test\libcxx\containers\associative\unord.map\abi.compile.pass.cpp`
consistently fails for 32-bit platforms.

There's an off-by-4 size calculation error for some `unordered_map`
specializations, possibly due to mistakenly ignoring some data member.

Added: 
    

Modified: 
    libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp b/libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp
index 39fc9fe94a83c..a9fafe0452ac3 100644
--- a/libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp
+++ b/libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp
@@ -209,9 +209,9 @@ static_assert(TEST_ALIGNOF(unordered_map_alloc<char, final_small_iter_allocator<
               "");
 
 static_assert(sizeof(std::unordered_map<int, int, FinalHash, UnalignedEqualTo>) == 24, "");
-static_assert(sizeof(std::unordered_map<int, int, FinalHash, FinalEqualTo>) == 24, "");
-static_assert(sizeof(std::unordered_map<int, int, NonEmptyHash, FinalEqualTo>) == 28, "");
-static_assert(sizeof(std::unordered_map<int, int, NonEmptyHash, NonEmptyEqualTo>) == 32, "");
+static_assert(sizeof(std::unordered_map<int, int, FinalHash, FinalEqualTo>) == 28, "");
+static_assert(sizeof(std::unordered_map<int, int, NonEmptyHash, FinalEqualTo>) == 32, "");
+static_assert(sizeof(std::unordered_map<int, int, NonEmptyHash, NonEmptyEqualTo>) == 36, "");
 
 static_assert(TEST_ALIGNOF(std::unordered_map<int, int, FinalHash, UnalignedEqualTo>) == 4, "");
 static_assert(TEST_ALIGNOF(std::unordered_map<int, int, FinalHash, FinalEqualTo>) == 4, "");


        


More information about the libcxx-commits mailing list