diff options
author | Naomi Musgrave <nmusgrave@google.com> | 2015-08-03 22:53:11 +0000 |
---|---|---|
committer | Naomi Musgrave <nmusgrave@google.com> | 2015-08-03 22:53:11 +0000 |
commit | bb4df94faa8cb027fb76d17ff7145f98700bac0a (patch) | |
tree | a32021f81a6b93eea218067410b1231139b2778b /clang/lib/CodeGen/CGClass.cpp | |
parent | 45291391b281283ac36ed7415cfaee54db4e2e17 (diff) | |
download | llvm-bb4df94faa8cb027fb76d17ff7145f98700bac0a.zip llvm-bb4df94faa8cb027fb76d17ff7145f98700bac0a.tar.gz llvm-bb4df94faa8cb027fb76d17ff7145f98700bac0a.tar.bz2 |
Dtor callback emitted when msan attribute not repressed for this function.
Summary: In addition to checking compiler flags, the front-end also examines the attributes of the destructor definition to ensure that the SanitizeMemory attribute is attached.
Reviewers: eugenis, kcc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D11727
refactored test into new file, revised how function attribute examined
modified test to examine default dtor with and without attribute
removed attribute check
llvm-svn: 243912
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGClass.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp index 0426f699..740cd4a 100644 --- a/clang/lib/CodeGen/CGClass.cpp +++ b/clang/lib/CodeGen/CGClass.cpp @@ -1479,7 +1479,8 @@ void CodeGenFunction::EmitDestructorBody(FunctionArgList &Args) { ExitCXXTryStmt(*cast<CXXTryStmt>(Body), true); // Insert memory-poisoning instrumentation. - if (CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor) + if (CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor + && SanOpts.has(SanitizerKind::Memory)) EmitDtorSanitizerCallback(*this, Dtor); } |