[Lldb-commits] [PATCH] D61333: [ASTImporter] Fix LLDB lookup in transparent ctx and with ext src
Gabor Marton via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Apr 30 12:24:58 PDT 2019
martong created this revision.
martong added reviewers: shafik, teemperor, jingham, clayborg, a_sidorin.
Herald added subscribers: lldb-commits, cfe-commits, gamesh411, Szelethus, dkrupp, rnkovacs.
Herald added a reviewer: a.sidorin.
Herald added projects: clang, LLDB.
With LLDB we use localUncachedLookup(), however, that fails to find
Decls when a transparent context is involved and the given DC has
external lexical storage. The solution is to use noload_lookup, which
works well with transparent contexts. But, we cannot use only the
noload_lookup since the slow case of localUncachedLookup is still needed
in some other cases.
These other cases are handled in ASTImporterLookupTable, but we cannot
use that with LLDB since that traverses through the AST which initiates
the load of external decls again via DC::decls().
We must avoid loading external decls during the import becuase
ExternalASTSource is implemented with ASTImporter, so external loads
during import results in uncontrolled and faulty import.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D61333
Files:
clang/lib/AST/ASTImporter.cpp
clang/unittests/AST/ASTImporterTest.cpp
lldb/include/lldb/Utility/Logging.h
lldb/packages/Python/lldbsuite/test/lang/c/ast/Makefile
lldb/packages/Python/lldbsuite/test/lang/c/ast/TestAST.py
lldb/packages/Python/lldbsuite/test/lang/c/ast/main.c
lldb/packages/Python/lldbsuite/test/lang/c/modules/main.c
lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
lldb/source/Symbol/ClangASTImporter.cpp
lldb/source/Utility/Logging.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61333.197409.patch
Type: text/x-patch
Size: 11965 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190430/df673328/attachment.bin>
More information about the lldb-commits
mailing list