forked from OSchip/llvm-project
![]() If we run into a first usage or definition of a mangled name, and there's a DeferredDecl that associated with it, we should remember it we need to emit it later on. Without this patch, clang-repl hits a JIT symbol not found error: clang-repl> extern "C" int printf(const char *, ...); clang-repl> auto l1 = []() { printf("ONE\n"); return 42; }; clang-repl> auto l2 = []() { printf("TWO\n"); return 17; }; clang-repl> auto r1 = l1(); ONE clang-repl> auto r2 = l2(); TWO clang-repl> auto r3 = l2(); JIT session error: Symbols not found: [ l2 ] error: Failed to materialize symbols: { (main, { r3, orc_init_func.incr_module_5, $.incr_module_5.inits.0 }) } Signed-off-by: Jun Zhang <jun@junz.org> Differential Revision: https://reviews.llvm.org/D130831 |
||
---|---|---|
.. | ||
APINotes | ||
ARCMT | ||
AST | ||
ASTMerge | ||
Analysis | ||
C | ||
CXX | ||
ClangScanDeps | ||
CodeCompletion | ||
CodeGen | ||
CodeGenCUDA | ||
CodeGenCUDASPIRV | ||
CodeGenCXX | ||
CodeGenCoroutines | ||
CodeGenHIP | ||
CodeGenHLSL | ||
CodeGenObjC | ||
CodeGenObjCXX | ||
CodeGenOpenCL | ||
CodeGenOpenCLCXX | ||
CodeGenSYCL | ||
Coverage | ||
CoverageMapping | ||
Driver | ||
ExtractAPI | ||
FixIt | ||
Format | ||
Frontend | ||
Headers | ||
Import | ||
Index | ||
Integration | ||
InterfaceStubs | ||
Interpreter | ||
Layout | ||
Lexer | ||
LibClang | ||
Misc | ||
Modules | ||
OpenMP | ||
PCH | ||
Parser | ||
ParserHLSL | ||
ParserSYCL | ||
Preprocessor | ||
Profile | ||
Refactor | ||
Rewriter | ||
Sema | ||
SemaCUDA | ||
SemaCXX | ||
SemaHLSL | ||
SemaObjC | ||
SemaObjCXX | ||
SemaOpenCL | ||
SemaOpenCLCXX | ||
SemaSYCL | ||
SemaTemplate | ||
TableGen | ||
Templight | ||
Tooling | ||
Unit | ||
VFS | ||
clang-rename | ||
utils/update_cc_test_checks | ||
.clang-format | ||
CMakeLists.txt | ||
TestRunner.sh | ||
lit.cfg.py | ||
lit.site.cfg.py.in |