[all-commits] [llvm/llvm-project] 781ee5: Reland "[CodeGen] Keep track info of lazy-emitted ...

Jun Zhang via All-commits all-commits at lists.llvm.org
Tue Jun 14 03:37:04 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 781ee538da1855876b085989a37ec959e3f2ecd1
  Author: Jun Zhang <jun at junz.org>
  Date:   2022-06-14 (Tue, 14 Jun 2022)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/ModuleBuilder.cpp
    M clang/test/Interpreter/execute.cpp

  Log Message:
  Reland "[CodeGen] Keep track info of lazy-emitted symbols in ModuleBuilder"

This reverts commits:

This relands below commit with asan fix:

The intent of this patch is to selectively carry some states over to
the Builder so we won't lose the information of the previous symbols.

This used to be several downstream patches of Cling, it aims to fix
errors in Clang Interpreter when trying to use inline functions.
Before this patch:

clang-repl> inline int foo() { return 42;}
clang-repl> int x = foo();

JIT session error: Symbols not found: [ _Z3foov ]
error: Failed to materialize symbols:
{ (main, { x, $.incr_module_1.__inits.0, __orc_init_func.incr_module_1 }) }

Co-authored-by: Axel Naumann <Axel.Naumann at cern.ch>
Signed-off-by: Jun Zhang <jun at junz.org>

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

More information about the All-commits mailing list