[all-commits] [llvm/llvm-project] 553c23: [BOLT] Preserve original LSDA type encoding

treapster via All-commits all-commits at lists.llvm.org
Wed Sep 14 09:40:21 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 553c23895217cfe24404a50dede2416c9e1a3a5e
      https://github.com/llvm/llvm-project/commit/553c23895217cfe24404a50dede2416c9e1a3a5e
  Author: revunov.denis at huawei.com <revunov.denis at huawei-partners.com>
  Date:   2022-09-14 (Wed, 14 Sep 2022)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryEmitter.cpp
    M bolt/lib/Core/Exceptions.cpp
    A bolt/test/runtime/exceptions-no-pie.cpp

  Log Message:
  -----------
  [BOLT] Preserve original LSDA type encoding

In non-pie binaries BOLT unconditionally converted type encoding
from indirect to absptr, which broke std exceptions since pointers
to their typeinfo were only assigned at runtime in .data section.
In this patch we preserve original encoding so that indirect
remains indirect and can be resolved at runtime, and absolute remains absolute.

Reviewed By: rafauler, maksfb

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




More information about the All-commits mailing list