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

Reply via email to