From e62fc3d0b6ce923dcbc29eeb6ebc5808e6724f90 Mon Sep 17 00:00:00 2001 From: Matt Morehouse Date: Wed, 19 Sep 2018 19:37:24 +0000 Subject: [InstCombine] Disable strcmp->memcmp transform for MSan. Summary: The strcmp->memcmp transform can make the resulting memcmp read uninitialized data, which MSan doesn't like. Resolves https://github.com/google/sanitizers/issues/993. Reviewers: eugenis, xbolva00 Reviewed By: eugenis Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D52272 llvm-svn: 342582 --- llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp') diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp index 8fa227930b4..3789181a898 100644 --- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp @@ -171,7 +171,10 @@ static bool canTransformToMemCmp(CallInst *CI, Value *Str, uint64_t Len, if (!isDereferenceableAndAlignedPointer(Str, 1, APInt(64, Len), DL)) return false; - + + if (CI->getFunction()->hasFnAttribute(Attribute::SanitizeMemory)) + return false; + return true; } -- cgit v1.2.3