import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestCase(TestBase):
# 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):
"""
This tests a pointer-to-member member which class part is the
surrounding class. LLDB should *not* try to generate the record layout
of the class when parsing pointer-to-member types while parsing debug
info (as the references class might not be complete when the type is
parsed).
"""
self.build()
self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
# Force the record layout for 'ToLayout' to be generated by printing
# a value of it's type.
self.expect("target variable test_var")