[PATCH] D38913: [ubsan] Don't emit function signatures for virtual methods

Vedant Kumar via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 13 17:41:58 PDT 2017


vsk created this revision.

The function sanitizer only checks indirect calls through function
pointers. This excludes all non-static member functions (constructor
calls, calls through thunks, etc all use a separate code path). Don't
emit function signatures for functions that won't be checked.

Apart from cutting down on code size, this should fix a regression on
Linux caused by r313096. For context, see the mailing list discussion:

r313096 - [ubsan] Function Sanitizer: Don't require writable text segments

Testing: check-clang, check-ubsan

Supersedes https://reviews.llvm.org/D38903.


https://reviews.llvm.org/D38913

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38913.118999.patch
Type: text/x-patch
Size: 3076 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171014/6f9a5b6a/attachment.bin>


More information about the cfe-commits mailing list