[Lldb-commits] [PATCH] D147436: [lldb][ClangExpression] Filter out non-root namespaces in FindNamespace

Michael Buch via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 3 17:43:18 PDT 2023


Michael137 added inline comments.


================
Comment at: lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py:197
+        # FIXME: under C++ rules this should call A::B::func() since we imported namespace 'A'
+        self.expect("expr B::func()", error=True, substrs=["no member named 'func' in namespace 'B'"])
 
----------------
Michael137 wrote:
> I need to double check how exactly this used to work and whether there's a fix for it on top of the current patch. But not supporting this seems less problematic than choosing the wrong namespace
I checked how expression evaluation currently works at namespace scope and it does rely on `FindExternalVisibleDecls` including all namespaces (not only top-level) in its search. We do the additional filtering for which function symbol to pick based on SymbolContext after the fact (in `LookupFunction`). This seems rather fragile but there is a decent amount of code to make this happen so I wouldn't want to just blindly stop supporting it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147436/new/

https://reviews.llvm.org/D147436



More information about the lldb-commits mailing list