[PATCH] D66377: hwasan: Untag unwound stack frames by wrapping personality functions.

Peter Collingbourne via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 22 17:43:03 PDT 2019


pcc added a comment.

In D66377#1642092 <https://reviews.llvm.org/D66377#1642092>, @eugenis wrote:

> What's the binary size overhead? I assume most of it comes from adding personality functions to noexcept but !nounwind functions?


It seems to be negative overhead, at least for Android libc++.so, presumably because we're no longer instrumenting landing pads. The size of libc++.so is 1116808 bytes without this change and 1101704 bytes with the change.



================
Comment at: llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp:1434
+      if (auto *Pers = dyn_cast<Function>(
+              F.getPersonalityFn()->stripPointerCastsNoFollowAliases()))
+        PersonalityFns[Pers].push_back(&F);
----------------
eugenis wrote:
> What if the personality function is an alias or an expression that does not strip down to a function? We could still wrap it.
Yes we could, done.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66377/new/

https://reviews.llvm.org/D66377





More information about the llvm-commits mailing list