[compiler-rt] 6f37d18 - [asan] Fixed test failing on windows due to different printf behaviour.
Vy Nguyen via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 15 07:59:04 PDT 2021
Author: Vy Nguyen
Date: 2021-03-15T10:58:40-04:00
New Revision: 6f37d18d8cb109848b16ab55b631a9bdb4956a7a
URL: https://github.com/llvm/llvm-project/commit/6f37d18d8cb109848b16ab55b631a9bdb4956a7a
DIFF: https://github.com/llvm/llvm-project/commit/6f37d18d8cb109848b16ab55b631a9bdb4956a7a.diff
LOG: [asan] Fixed test failing on windows due to different printf behaviour.
%p reported prints upper case hex chars on Windows.
The fix is to switch to using %#lx
Differential Revision: https://reviews.llvm.org/D98570
Added:
Modified:
compiler-rt/test/asan/TestCases/wild_pointer.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/asan/TestCases/wild_pointer.cpp b/compiler-rt/test/asan/TestCases/wild_pointer.cpp
index 80c3e2b254e5..8969a285e565 100644
--- a/compiler-rt/test/asan/TestCases/wild_pointer.cpp
+++ b/compiler-rt/test/asan/TestCases/wild_pointer.cpp
@@ -2,7 +2,9 @@
// RUN: not %run %t 2>&1 | FileCheck %s
// REQUIRES: asan-64-bits
+#include <inttypes.h>
#include <stdarg.h>
+#include <stdint.h>
#include <stdio.h>
#include <string.h>
@@ -10,9 +12,17 @@ int main() {
char *p = new char;
char *dest = new char;
const size_t offset = 0x4567890123456789;
+
+ // The output here needs to match the output from the sanitizer runtime,
+ // which includes 0x and prints hex in lower case.
+ //
+ // On Windows, %p omits %0x and prints hex characters in upper case,
+ // so we use PRIxPTR instead of %p.
+ fprintf(stderr, "Expected bad addr: %#" PRIxPTR "\n",
+ reinterpret_cast<uintptr_t>(p + offset));
// Flush it so the output came out before the asan report.
- fprintf(stderr, "Expected bad addr: %p\n", p + offset);
fflush(stderr);
+
memmove(dest, p, offset);
return 0;
}
More information about the llvm-commits
mailing list