[libcxx-commits] [libcxx] [libc++][test] Fix size calculation for `unordered_map` in ABI test (PR #157006)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Sep 4 20:28:36 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: A. Jiang (frederick-vs-ja)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/157006.diff
1 Files Affected:
- (modified) libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp (+3-3)
``````````diff
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, "");
``````````
</details>
https://github.com/llvm/llvm-project/pull/157006
More information about the libcxx-commits
mailing list