| // RUN: %clang -O0 %s -o %t && %run %t |
| |
| // FIXME: investigate why this fails on macos |
| // UNSUPPORTED: darwin |
| |
| #include <stdlib.h> |
| |
| const char *test() __attribute__((disable_sanitizer_instrumentation)) { |
| void *volatile p = malloc(3); |
| p = realloc(p, 7); |
| free(p); |
| |
| p = calloc(3, 7); |
| free(p); |
| |
| free(NULL); |
| |
| return ""; |
| } |
| |
| const char *__asan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__hwasan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__lsan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__memprof_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__msan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__nsan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__rtsan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__tsan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| const char *__ubsan_default_options() |
| __attribute__((disable_sanitizer_instrumentation)) { |
| return test(); |
| } |
| |
| int main(int argc, char **argv) { return 0; } |