Author: filcab Date: Tue Jan 2 05:46:12 2018 New Revision: 321647 URL: http://llvm.org/viewvc/llvm-project?rev=321647&view=rev Log: Revert "ASan+operator new[]: Fix operator new[] cookie poisoning"
This reverts r321645. I missed a compiler-rt test that needs updating. Modified: cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp cfe/trunk/test/CodeGen/address-sanitizer-and-array-cookie.cpp Modified: cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp?rev=321647&r1=321646&r2=321647&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp (original) +++ cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp Tue Jan 2 05:46:12 2018 @@ -1847,7 +1847,8 @@ Address ItaniumCXXABI::InitializeArrayCo llvm::Instruction *SI = CGF.Builder.CreateStore(NumElements, NumElementsPtr); // Handle the array cookie specially in ASan. - if (CGM.getLangOpts().Sanitize.has(SanitizerKind::Address) && AS == 0) { + if (CGM.getLangOpts().Sanitize.has(SanitizerKind::Address) && AS == 0 && + expr->getOperatorNew()->isReplaceableGlobalAllocationFunction()) { // The store to the CookiePtr does not need to be instrumented. CGM.getSanitizerMetadata()->disableSanitizerForInstruction(SI); llvm::FunctionType *FTy = Modified: cfe/trunk/test/CodeGen/address-sanitizer-and-array-cookie.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/address-sanitizer-and-array-cookie.cpp?rev=321647&r1=321646&r2=321647&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/address-sanitizer-and-array-cookie.cpp (original) +++ cfe/trunk/test/CodeGen/address-sanitizer-and-array-cookie.cpp Tue Jan 2 05:46:12 2018 @@ -7,7 +7,7 @@ namespace std { std::nothrow_t nothrow; } void *operator new[](size_t, const std::nothrow_t &) throw(); -void *operator new[](size_t, void *); +void *operator new[](size_t, char *); struct C { int x; @@ -53,11 +53,3 @@ C *CallPlacementNew() { } // ASAN-LABEL: CallPlacementNew // ASAN-NOT: __asan_poison_cxx_array_cookie - -void *operator new[](size_t n, int); - -C *CallNewWithArgs() { -// ASAN-LABEL: CallNewWithArgs -// ASAN: call void @__asan_poison_cxx_array_cookie - return new (123) C[20]; -} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits