diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-12-20 19:05:44 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-12-20 19:05:44 +0000 |
| commit | 3fd1b1a764c856c11748619ca5fecf5b22ef0880 (patch) | |
| tree | 15b14e594d84d7351729c1555bba87a0ea30ff1e /clang/lib/CodeGen | |
| parent | f7f59b529293136d0f711b86dbfccb525d0677d4 (diff) | |
| download | bcm5719-llvm-3fd1b1a764c856c11748619ca5fecf5b22ef0880.tar.gz bcm5719-llvm-3fd1b1a764c856c11748619ca5fecf5b22ef0880.zip | |
[hwasan] Implement -fsanitize-recover=hwaddress.
Summary: Very similar to AddressSanitizer, with the exception of the error type encoding.
Reviewers: kcc, alekseyshl
Subscribers: cfe-commits, kubamracek, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D41417
llvm-svn: 321203
Diffstat (limited to 'clang/lib/CodeGen')
| -rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 2c033e0f7c0..e2349da5f0a 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -239,7 +239,11 @@ static void addKernelAddressSanitizerPasses(const PassManagerBuilder &Builder, static void addHWAddressSanitizerPasses(const PassManagerBuilder &Builder, legacy::PassManagerBase &PM) { - PM.add(createHWAddressSanitizerPass()); + const PassManagerBuilderWrapper &BuilderWrapper = + static_cast<const PassManagerBuilderWrapper &>(Builder); + const CodeGenOptions &CGOpts = BuilderWrapper.getCGOpts(); + bool Recover = CGOpts.SanitizeRecover.has(SanitizerKind::HWAddress); + PM.add(createHWAddressSanitizerPass(Recover)); } static void addMemorySanitizerPass(const PassManagerBuilder &Builder, |

