68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
"""
|
|
Test that LLDB correctly handles fields
|
|
marked with [[no_unique_address]].
|
|
"""
|
|
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class NoUniqueAddressTestCase(TestBase):
|
|
def test(self):
|
|
self.build()
|
|
lldbutil.run_to_source_breakpoint(
|
|
self, "return 0", lldb.SBFileSpec("main.cpp", False)
|
|
)
|
|
|
|
# Qualified/unqualified lookup to templates in namespace
|
|
self.expect_expr(
|
|
"b1",
|
|
result_type="basic::Foo",
|
|
result_children=[ValueCheck(name="a", type="Empty")],
|
|
)
|
|
|
|
self.expect_expr(
|
|
"b2",
|
|
result_type="bases::Foo",
|
|
result_children=[
|
|
ValueCheck(
|
|
type="bases::B", children=[ValueCheck(name="x", type="Empty")]
|
|
),
|
|
ValueCheck(
|
|
type="bases::A",
|
|
children=[
|
|
ValueCheck(name="c", type="long", value="1"),
|
|
ValueCheck(name="d", type="long", value="2"),
|
|
],
|
|
),
|
|
ValueCheck(
|
|
type="bases::C", children=[ValueCheck(name="x", type="Empty")]
|
|
),
|
|
],
|
|
)
|
|
self.expect_expr(
|
|
"b3",
|
|
result_type="bases::Bar",
|
|
result_children=[
|
|
ValueCheck(
|
|
type="bases::B", children=[ValueCheck(name="x", type="Empty")]
|
|
),
|
|
ValueCheck(
|
|
type="bases::C", children=[ValueCheck(name="x", type="Empty")]
|
|
),
|
|
ValueCheck(
|
|
type="bases::A",
|
|
children=[
|
|
ValueCheck(name="c", type="long", value="5"),
|
|
ValueCheck(name="d", type="long", value="6"),
|
|
],
|
|
),
|
|
],
|
|
)
|
|
|
|
self.expect("frame var b1")
|
|
self.expect("frame var b2")
|
|
self.expect("frame var b3")
|