diff --git a/compiler-rt/test/sanitizer_common/TestCases/onprint.cpp b/compiler-rt/test/sanitizer_common/TestCases/onprint.cpp --- a/compiler-rt/test/sanitizer_common/TestCases/onprint.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/onprint.cpp @@ -8,21 +8,25 @@ // UNSUPPORTED: android #include -#include #include +#include +#include +#include +#include +#include -FILE *f; +int f; volatile void *buf; volatile char sink; -extern "C" void __sanitizer_on_print(const char *str) { - fprintf(f, "%s", str); - fflush(f); +__attribute__((disable_sanitizer_instrumentation)) extern "C" void +__sanitizer_on_print(const char *str) { + write(f, str, strlen(str)); } int main(int argc, char *argv[]) { assert(argc >= 2); - f = fopen(argv[1], "w"); + f = open(argv[1], O_WRONLY); // Use-after-free to trigger ASan/TSan reports. void *ptr = malloc(1);