From c5ea9b8a51ddcd5121ec1bcad7b034c8aa692f52 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Sun, 30 Oct 2022 11:07:38 -0700 Subject: [PATCH] [test][asan] Make the printf-5.c test case actually emit a volatile memcpy. The current test in printf-5.c appears to try to emit a volatile memcpy for the format string, but it doesn't because the volatile qualifier is implicitly casted away. Using a string literal instead preserves the volatile qualifier. This is a follow-up to D137031 and is a prerequisite for D136822, which elides memcpys in more instances and would otherwise break this test. Differential Revision: https://reviews.llvm.org/D137042 --- compiler-rt/test/asan/TestCases/printf-5.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compiler-rt/test/asan/TestCases/printf-5.c b/compiler-rt/test/asan/TestCases/printf-5.c index 2257bb4..89d3a33 100644 --- a/compiler-rt/test/asan/TestCases/printf-5.c +++ b/compiler-rt/test/asan/TestCases/printf-5.c @@ -14,8 +14,7 @@ int main() { volatile int x = 12; volatile float f = 1.239; volatile char s[] = "34"; - volatile char fmt[2]; - memcpy((char *)fmt, "%c %d %f %s\n", sizeof(fmt)); + volatile char fmt[2] = "%c %d %f %s\n"; printf((char *)fmt, c, x, f, s); return 0; // Check that format string is sanitized. -- 2.7.4