[Lldb-commits] [lldb] a0c735e - [lldb] Skip TestPointerToMemberTypeDependingOnParentSize on Windows and GCC

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 26 09:56:39 PDT 2021


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 at 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):
         """


        


More information about the lldb-commits mailing list