[all-commits] [llvm/llvm-project] cdb30f: [clang] Do not instrument the rtti_proxies under h...

PiJoules via All-commits all-commits at lists.llvm.org
Fri Aug 26 11:23:42 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cdb30f7a26354b000310ebe30a6874f7737675ed
      https://github.com/llvm/llvm-project/commit/cdb30f7a26354b000310ebe30a6874f7737675ed
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2022-08-26 (Fri, 26 Aug 2022)

  Changed paths:
    M clang/lib/CodeGen/CGVTables.cpp
    M clang/lib/CodeGen/CGVTables.h
    M clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-hwasan.cpp

  Log Message:
  -----------
  [clang] Do not instrument the rtti_proxies under hwasan

We run into a duplicate symbol error when instrumenting the rtti_proxies
generated as part of the relative vtables ABI with hwasan:

```
ld.lld: error: duplicate symbol: typeinfo for icu_71::UObject
(.rtti_proxy)
>>> defined at brkiter.cpp
>>>
arm64-hwasan-shared/obj/third_party/icu/source/common/libicuuc.brkiter.cpp.o:(typeinfo
for icu_71::UObject (.rtti_proxy))
>>> defined at locavailable.cpp
>>>
arm64-hwasan-shared/obj/third_party/icu/source/common/libicuuc.locavailable.cpp.o:(.data.rel.ro..L_ZTIN6icu_717UObjectE.rtti_proxy.hwasan+0xE00000000000000)
```

The issue here is that the hwasan alias carries over the visibility and
linkage of the original proxy, so we have duplicate external symbols
that participate in linking. Similar to D132425 we can just disable
hwasan for the proxies for now.

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




More information about the All-commits mailing list