// 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>
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;
}