From a946997c2482e4386549ee38b4bb154eb58efbb6 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Tue, 12 Mar 2019 07:45:04 +0000 Subject: 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 --- .../inline-namespace/TestInlineNamespace.py | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py') diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py b/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py new file mode 100644 index 00000000000..b17115be292 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/expression_command/inline-namespace/TestInlineNamespace.py @@ -0,0 +1,26 @@ +""" +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']) -- cgit v1.2.3