summaryrefslogtreecommitdiff
path: root/absl/synchronization/mutex_test.cc
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2022-11-16 11:05:21 -0800
committerGravatar Copybara-Service <copybara-worker@google.com>2022-11-16 11:06:21 -0800
commit4b48854949f8bf9afb871c293a9022331a0b77c7 (patch)
tree768ae9ca20e921fbce962adce0cad17bf409eea6 /absl/synchronization/mutex_test.cc
parent76fa844139fb04958a9682f34e3b3d0e4943ae5f (diff)
Update Condition to allocate 24 bytes for MSVC platform pointers to methods.
PiperOrigin-RevId: 488986942 Change-Id: I2babb7ea30d60c544f55ca9ed02d9aed23051a12
Diffstat (limited to 'absl/synchronization/mutex_test.cc')
-rw-r--r--absl/synchronization/mutex_test.cc91
1 files changed, 0 insertions, 91 deletions
diff --git a/absl/synchronization/mutex_test.cc b/absl/synchronization/mutex_test.cc
index f3d60852..34751cb1 100644
--- a/absl/synchronization/mutex_test.cc
+++ b/absl/synchronization/mutex_test.cc
@@ -1730,95 +1730,4 @@ TEST(Mutex, SignalExitedThread) {
for (auto &th : top) th.join();
}
-#ifdef _MSC_VER
-
-// Declare classes of the various MSVC inheritance types.
-class __single_inheritance SingleInheritance{};
-class __multiple_inheritance MultipleInheritance;
-class __virtual_inheritance VirtualInheritance;
-class UnknownInheritance;
-
-TEST(ConditionTest, MicrosoftMethodPointerSize) {
- // This test verifies expectations about sizes of MSVC pointers to methods.
- // Pointers to methods are distinguished by whether their class hierachies
- // contain single inheritance, multiple inheritance, or virtual inheritence.
- void (SingleInheritance::*single_inheritance)();
- void (MultipleInheritance::*multiple_inheritance)();
- void (VirtualInheritance::*virtual_inheritance)();
- void (UnknownInheritance::*unknown_inheritance)();
-
-#if defined(_M_IX86) || defined(_M_ARM)
- static_assert(sizeof(single_inheritance) == 4,
- "Unexpected sizeof(single_inheritance).");
- static_assert(sizeof(multiple_inheritance) == 8,
- "Unexpected sizeof(multiple_inheritance).");
- static_assert(sizeof(virtual_inheritance) == 12,
- "Unexpected sizeof(virtual_inheritance).");
-#elif defined(_M_X64) || defined(__aarch64__)
- static_assert(sizeof(single_inheritance) == 8,
- "Unexpected sizeof(single_inheritance).");
- static_assert(sizeof(multiple_inheritance) == 16,
- "Unexpected sizeof(multiple_inheritance).");
- static_assert(sizeof(virtual_inheritance) == 16,
- "Unexpected sizeof(virtual_inheritance).");
-#endif
- static_assert(sizeof(unknown_inheritance) >= sizeof(virtual_inheritance),
- "Failed invariant: sizeof(unknown_inheritance) >= "
- "sizeof(virtual_inheritance)!");
-}
-
-class Callback {
- bool x = true;
-
- public:
- Callback() {}
- bool method() {
- x = !x;
- return x;
- }
-};
-
-class M2 {
- bool x = true;
-
- public:
- M2() {}
- bool method2() {
- x = !x;
- return x;
- }
-};
-
-class MultipleInheritance : public Callback, public M2 {};
-
-TEST(ConditionTest, ConditionWithMultipleInheritanceMethod) {
- // This test ensures that Condition can deal with method pointers from classes
- // with multiple inheritance.
- MultipleInheritance object = MultipleInheritance();
- absl::Condition condition(&object, &MultipleInheritance::method);
- EXPECT_FALSE(condition.Eval());
- EXPECT_TRUE(condition.Eval());
-}
-
-class __virtual_inheritance VirtualInheritance : virtual public Callback {
- bool x = false;
-
- public:
- VirtualInheritance() {}
- bool method() {
- x = !x;
- return x;
- }
-};
-
-TEST(ConditionTest, ConditionWithVirtualInheritanceMethod) {
- // This test ensures that Condition can deal with method pointers from classes
- // with virtual inheritance.
- VirtualInheritance object = VirtualInheritance();
- absl::Condition condition(&object, &VirtualInheritance::method);
- EXPECT_TRUE(condition.Eval());
- EXPECT_FALSE(condition.Eval());
-}
-#endif
-
} // namespace