[test][asan] Make the printf-5.c test case actually emit a volatile memcpy.
authorPatrick Walton <pcwalton@fb.com>
Sun, 30 Oct 2022 18:07:38 +0000 (11:07 -0700)
committerPatrick Walton <pcwalton@fb.com>
Sun, 30 Oct 2022 20:20:36 +0000 (13:20 -0700)
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

index 2257bb4..89d3a33 100644 (file)
@@ -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.