[compiler-rt] 341ca1a - [test][msan] s390x already passes the test
via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 17 14:26:45 PST 2023
Author: Vitaly Buka
Date: 2023-11-17T14:26:41-08:00
New Revision: 341ca1ad0c32fc757680e9d5d302789b6458a7de
URL: https://github.com/llvm/llvm-project/commit/341ca1ad0c32fc757680e9d5d302789b6458a7de
DIFF: https://github.com/llvm/llvm-project/commit/341ca1ad0c32fc757680e9d5d302789b6458a7de.diff
LOG: [test][msan] s390x already passes the test
3bc439bdff8bb5518098bd9ef52c56ac071276bc implemented overflow copying in a different way.
It's lucky to pass this test, but may fails in a different way.
Reviewers: thurstond, iii-i
Reviewed By: thurstond
Pull Request: https://github.com/llvm/llvm-project/pull/72710
Added:
Modified:
compiler-rt/test/msan/vararg_shadow.cpp
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/msan/vararg_shadow.cpp b/compiler-rt/test/msan/vararg_shadow.cpp
index 0c1e5e8d6369c3a..78f1591b3d62bce 100644
--- a/compiler-rt/test/msan/vararg_shadow.cpp
+++ b/compiler-rt/test/msan/vararg_shadow.cpp
@@ -3,8 +3,8 @@
// Without -fno-sanitize-memory-param-retval we can't even pass poisoned values.
// RUN: %clangxx_msan -fno-sanitize-memory-param-retval -fsanitize-memory-track-origins=0 -O3 %s -o %t
-// Nothing works yet.
-// XFAIL: *
+// The most of targets fail the test.
+// XFAIL: target={{(x86|aarch64|loongarch64|mips|powerpc64).*}}
#include <sanitizer/msan_interface.h>
#include <stdarg.h>
diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
index 0cdb269a97b1395..c6f9fb7a88973b5 100644
--- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -5600,6 +5600,9 @@ struct VarArgSystemZHelper : public VarArgHelperBase {
Alignment, RegSaveAreaSize);
}
+
+ // FIXME: This implementation limits OverflowOffset to kParamTLSSize, so we
+ // don't know real overflow size and can't clear shadow beyond kParamTLSSize.
void copyOverflowArea(IRBuilder<> &IRB, Value *VAListTag) {
Type *OverflowArgAreaPtrTy = PointerType::getUnqual(*MS.C); // i64*
Value *OverflowArgAreaPtrPtr = IRB.CreateIntToPtr(
More information about the llvm-commits
mailing list