]> granicus.if.org Git - clang/commit
Implement CFI type checks for non-virtual calls.
authorPeter Collingbourne <peter@pcc.me.uk>
Thu, 2 Apr 2015 00:23:30 +0000 (00:23 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Thu, 2 Apr 2015 00:23:30 +0000 (00:23 +0000)
commit209a92660664324ed64c677aa227b6fcc59ce13c
tree0af43e0a071c047c1082549ff621f03507de95a8
parent971cf68f266f58f63b0b260b7f3a363d2f111cd6
Implement CFI type checks for non-virtual calls.

This uses the same class metadata currently used for virtual call and
cast checks.

The new flag is -fsanitize=cfi-nvcall. For consistency, the -fsanitize=cfi-vptr
flag has been renamed -fsanitize=cfi-vcall.

Differential Revision: http://reviews.llvm.org/D8756

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@233874 91177308-0d34-0410-b5e6-96231b3b80d8
docs/ControlFlowIntegrity.rst
docs/UsersManual.rst
include/clang/Basic/Sanitizers.def
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGExprCXX.cpp
lib/CodeGen/CGVTables.cpp
lib/CodeGen/ItaniumCXXABI.cpp
lib/Driver/SanitizerArgs.cpp
test/CodeGenCXX/cfi-nvcall.cpp [new file with mode: 0644]
test/CodeGenCXX/cfi-vcall.cpp [moved from test/CodeGenCXX/cfi-vptr.cpp with 88% similarity]
test/Driver/fsanitize.c