[PATCH] D38903: [ubsan] Only use indirect RTTI in prologues on Darwin

Vedant Kumar via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 13 14:50:36 PDT 2017


vsk created this revision.

Using a layer of indirection to point to RTTI through function prologues
is not supported on some setups. One reported error message is:

  error: Cannot represent a difference across sections

This is a regression. This patch limits the indirect RTTI behavior to
Darwin, where we know it works. We can add more configurations to the
whitelist once we know it won't be a regression.

For context, see the mailing list discussion re:
r313096 - [ubsan] Function Sanitizer: Don't require writable text segments

Testing: check-clang, check-ubsan


https://reviews.llvm.org/D38903

Files:
  lib/CodeGen/CGExpr.cpp
  lib/CodeGen/CodeGenFunction.cpp
  lib/CodeGen/TargetInfo.cpp
  test/CodeGenCXX/catch-undef-behavior.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38903.118976.patch
Type: text/x-patch
Size: 9115 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171013/6f7ed71c/attachment.bin>


More information about the cfe-commits mailing list