forked from OSchip/llvm-project
[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
This commit is contained in:
parent
0b2aae42e5
commit
6f37d18d8c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue