Xamarin Public Jenkins (auto-signing) 468663ddbb Imported Upstream version 6.10.0.49
Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
2020-01-16 16:38:04 +00:00

32 lines
996 B
C++

// RUN: %clangxx_asan %s -o %t
// RUN: %env_asan_opts=print_module_map=1 not %run %t 2>&1 | FileCheck %s
// RUN: %env_asan_opts=print_module_map=2 not %run %t 2>&1 | FileCheck %s
// RUN: %clangxx_asan %s -o %t -fsanitize-recover=address
// RUN: %env_asan_opts=print_module_map=2:halt_on_error=0 %run %t 2>&1 | FileCheck %s
// We can't run system("otool") in the simulator.
// UNSUPPORTED: ios
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char buf[2048];
snprintf(buf, sizeof(buf), "otool -l %s 1>&2", argv[0]);
system(buf);
// CHECK: cmd LC_UUID
// CHECK-NEXT: cmdsize 24
// CHECK-NEXT: uuid [[UUID:[0-9A-F-]{36}]]
char *x = (char*)malloc(10 * sizeof(char));
free(x);
char mybuf[10];
memcpy(mybuf, x, 10);
// CHECK: {{.*ERROR: AddressSanitizer: heap-use-after-free on address}}
// CHECK: Process module map:
// CHECK: uuid.cc.tmp {{.*}} <[[UUID]]>
fprintf(stderr, "Done.\n");
}