X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=lib%2FIR%2FMetadata.cpp;fp=lib%2FIR%2FMetadata.cpp;h=51548a82576e54966a5cbfa2c9b122068addd04d;hp=7d8c352374316d47fe56956e4f18e6aee71b83da;hb=e2bfe6d6a181f05b7c43f76f44da05b1cfdff097;hpb=da821f9ff68908b5fcc0e39eb2cc148b1940b513 diff --git a/lib/IR/Metadata.cpp b/lib/IR/Metadata.cpp index 7d8c3523743..51548a82576 100644 --- a/lib/IR/Metadata.cpp +++ b/lib/IR/Metadata.cpp @@ -401,7 +401,9 @@ void *MDNode::operator new(size_t Size, unsigned NumOps) { return Ptr; } -void MDNode::operator delete(void *Mem) { +// Repress memory sanitization, due to use-after-destroy by operator +// delete. Bug report 24578 identifies this issue. +LLVM_NO_SANITIZE_MEMORY_ATTRIBUTE void MDNode::operator delete(void *Mem) { MDNode *N = static_cast(Mem); size_t OpSize = N->NumOperands * sizeof(MDOperand); OpSize = RoundUpToAlignment(OpSize, llvm::alignOf());