[all-commits] [llvm/llvm-project] 61aec6: [libcxxabi] Add macro for changing functions to su...

Leonard Chan via All-commits all-commits at lists.llvm.org
Mon Nov 30 10:51:03 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 61aec69a65dec949f3d2556c4d0efaa87869e1ee
      https://github.com/llvm/llvm-project/commit/61aec69a65dec949f3d2556c4d0efaa87869e1ee
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2020-11-30 (Mon, 30 Nov 2020)

  Changed paths:
    M libcxxabi/src/private_typeinfo.cpp

  Log Message:
  -----------
  [libcxxabi] Add macro for changing functions to support the relative vtables ABI

Under the relative vtables ABI, __dynamic_cast will not work since it assumes
the vtable pointer is 2 ptrdiff_ts away from the start of the vtable (8-byte
offset to top + 8-byte pointer to typeinfo) when it is actually 8 bytes away
(4-byte offset to top + 4-byte offset to typeinfo). This adjusts the logic under
__dynamic_cast and other areas vtable calculations are done to support this ABI
when it's used.

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




More information about the All-commits mailing list