teak-llvm/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py
Raphael Isemann a946997c24 Correctly look up declarations in inline namespaces
Summary:
This patch marks the inline namespaces from DWARF as inline and also ensures that looking
up declarations now follows the lookup rules for inline namespaces.

Reviewers: aprantl, shafik, serge-sans-paille

Reviewed By: aprantl

Subscribers: eraman, jdoerfert, lldb-commits

Tags: #c_modules_in_lldb, #lldb

Differential Revision: https://reviews.llvm.org/D59198

llvm-svn: 355897
2019-03-12 07:45:04 +00:00

27 lines
760 B
Python

"""
Test that we correctly handle inline namespaces.
"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestInlineNamespace(TestBase):
mydir = TestBase.compute_mydir(__file__)
def test(self):
self.build()
lldbutil.run_to_source_breakpoint(self,
"// Set break point at this line.", lldb.SBFileSpec("main.cpp"))
# The 'A::B::f' function must be found via 'A::f' as 'B' is an inline
# namespace.
self.expect("expr A::f()", substrs=['$0 = 3'])
# But we should still find the function when we pretend the inline
# namespace is not inline.
self.expect("expr A::B::f()", substrs=['$1 = 3'])