Author: Raphael Isemann Date: 2021-04-26T18:55:54+02:00 New Revision: a0c735e29a4fd471fa4a9ee60b3bdea79a066e28
URL: https://github.com/llvm/llvm-project/commit/a0c735e29a4fd471fa4a9ee60b3bdea79a066e28 DIFF: https://github.com/llvm/llvm-project/commit/a0c735e29a4fd471fa4a9ee60b3bdea79a066e28.diff LOG: [lldb] Skip TestPointerToMemberTypeDependingOnParentSize on Windows and GCC The test added in D100977 is failing to compile on these platforms. This seems to be caused by GCC, MSVC and Clang@Windows rejecting the code because `ToLayout` isn't complete when pointer_to_member_member is declared (even though that seems to be valid code). This also reverts the test changes in the lazy-loading test from D100977 as that failed for the same reason. Added: Modified: lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py lldb/test/API/functionalities/lazy-loading/main.cpp lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py Removed: ################################################################################ diff --git a/lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py b/lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py index de5154e66ae5..326315c838e5 100644 --- a/lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py +++ b/lldb/test/API/functionalities/lazy-loading/TestLazyLoading.py @@ -41,7 +41,6 @@ def setUp(self): class_we_enter_decl = [class_decl_kind, "ClassWeEnter"] class_member_decl = [struct_decl_kind, "ClassMember"] class_static_member_decl = [struct_decl_kind, "StaticClassMember"] - class_pointer_to_member_decl = [struct_decl_kind, "PointerToMember"] unused_class_member_decl = [struct_decl_kind, "UnusedClassMember"] unused_class_member_ptr_decl = [struct_decl_kind, "UnusedClassMemberPtr"] @@ -59,7 +58,6 @@ def assert_no_decls_loaded(self): self.assert_decl_not_loaded(self.class_in_namespace_decl) self.assert_decl_not_loaded(self.class_member_decl) self.assert_decl_not_loaded(self.class_static_member_decl) - self.assert_decl_not_loaded(self.class_pointer_to_member_decl) self.assert_decl_not_loaded(self.unused_class_member_decl) def get_ast_dump(self): @@ -234,8 +232,6 @@ def test_class_function_access_member(self): self.assert_decl_loaded(self.class_member_decl) # We didn't load the type of the unused static member. self.assert_decl_not_completed(self.class_static_member_decl) - # We didn't load the type of the unused pointer-to-member member. - self.assert_decl_not_completed(self.class_pointer_to_member_decl) # This should not have loaded anything else. self.assert_decl_not_loaded(self.other_struct_decl) diff --git a/lldb/test/API/functionalities/lazy-loading/main.cpp b/lldb/test/API/functionalities/lazy-loading/main.cpp index 013fb02eb88f..bb8f56e277ce 100644 --- a/lldb/test/API/functionalities/lazy-loading/main.cpp +++ b/lldb/test/API/functionalities/lazy-loading/main.cpp @@ -26,7 +26,6 @@ struct ClassMember { int i; }; struct StaticClassMember { int i; }; struct UnusedClassMember { int i; }; struct UnusedClassMemberPtr { int i; }; -struct PointerToMember { int i; }; namespace NS { class ClassInNamespace { @@ -37,7 +36,6 @@ class ClassWeEnter { int dummy; // Prevent bug where LLDB always completes first member. ClassMember member; static StaticClassMember static_member; - int (PointerToMember::*ptr_to_member); UnusedClassMember unused_member; UnusedClassMemberPtr *unused_member_ptr; int enteredFunction() { diff --git a/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py b/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py index fd978158e716..cd8977c3a2e1 100644 --- a/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py +++ b/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py @@ -7,6 +7,12 @@ class TestCase(TestBase): mydir = TestBase.compute_mydir(__file__) + # GCC rejects the test code because `ToLayout` is not complete when + # pointer_to_member_member is declared. + @skipIf(compiler="gcc") + # On Windows both MSVC and Clang are rejecting the test code because + # `ToLayout` is not complete when pointer_to_member_member is declared. + @skipIfWindows @no_debug_info_test def test(self): """ _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits