diff options
| author | Fangrui Song <maskray@google.com> | 2019-08-02 07:18:07 +0000 |
|---|---|---|
| committer | Fangrui Song <maskray@google.com> | 2019-08-02 07:18:07 +0000 |
| commit | bcaeed49cb063de9fe504aa29e1cadff8a7be710 (patch) | |
| tree | 01b6111d0c244bb2c86f705a06f575442cf58aeb /compiler-rt/test/tsan/debug_alloc_stack.cc | |
| parent | 8113c93fb1b7d1cc595882bca17381c1bd3b2069 (diff) | |
| download | bcm5719-llvm-bcaeed49cb063de9fe504aa29e1cadff8a7be710.tar.gz bcm5719-llvm-bcaeed49cb063de9fe504aa29e1cadff8a7be710.zip | |
compiler-rt: Rename .cc file in test/tsan to .cpp
Like r367463, but for test/tsan.
llvm-svn: 367656
Diffstat (limited to 'compiler-rt/test/tsan/debug_alloc_stack.cc')
| -rw-r--r-- | compiler-rt/test/tsan/debug_alloc_stack.cc | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/compiler-rt/test/tsan/debug_alloc_stack.cc b/compiler-rt/test/tsan/debug_alloc_stack.cc deleted file mode 100644 index ffe99e73a2a..00000000000 --- a/compiler-rt/test/tsan/debug_alloc_stack.cc +++ /dev/null @@ -1,84 +0,0 @@ -// RUN: %clangxx_tsan -O0 %s -o %t -// RUN: env %env_tsan_opts=stack_trace_format=DEFAULT %deflake %run %t 2>&1 | FileCheck %s - -// Until I figure out how to make this test work on Linux -// REQUIRES: system-darwin - -#include "test.h" -#include <pthread.h> -#include <stdint.h> -#include <stdio.h> -#include <stdlib.h> - -#ifndef __APPLE__ -#include <sys/types.h> -#endif - -extern "C" int __tsan_get_alloc_stack(void *addr, void **trace, size_t size, - int *thread_id, uint64_t *os_id); - -char *mem; -void alloc_func() { mem = (char *)malloc(10); } - -void *AllocThread(void *context) { - uint64_t tid; -#ifdef __APPLE__ - pthread_threadid_np(NULL, &tid); -#else - tid = gettid(); -#endif - fprintf(stderr, "alloc stack thread os id = 0x%llx\n", tid); - // CHECK: alloc stack thread os id = [[THREAD_OS_ID:0x[0-9a-f]+]] - alloc_func(); - return NULL; -} - -void *RaceThread(void *context) { - *mem = 'a'; - barrier_wait(&barrier); - return NULL; -} - -int main() { - pthread_t t; - barrier_init(&barrier, 2); - - pthread_create(&t, NULL, AllocThread, NULL); - pthread_join(t, NULL); - - void *trace[100]; - size_t num_frames = 100; - int thread_id; - uint64_t *thread_os_id; - num_frames = - __tsan_get_alloc_stack(mem, trace, num_frames, &thread_id, &thread_os_id); - - fprintf(stderr, "alloc stack retval %s\n", - (num_frames > 0 && num_frames < 10) ? "ok" : ""); - // CHECK: alloc stack retval ok - fprintf(stderr, "thread id = %d\n", thread_id); - // CHECK: thread id = 1 - fprintf(stderr, "thread os id = 0x%llx\n", thread_os_id); - // CHECK: thread os id = [[THREAD_OS_ID]] - fprintf(stderr, "%p\n", trace[0]); - // CHECK: [[ALLOC_FRAME_0:0x[0-9a-f]+]] - fprintf(stderr, "%p\n", trace[1]); - // CHECK: [[ALLOC_FRAME_1:0x[0-9a-f]+]] - fprintf(stderr, "%p\n", trace[2]); - // CHECK: [[ALLOC_FRAME_2:0x[0-9a-f]+]] - - pthread_create(&t, NULL, RaceThread, NULL); - barrier_wait(&barrier); - mem[0] = 'b'; - pthread_join(t, NULL); - - free(mem); - - return 0; -} - -// CHECK: WARNING: ThreadSanitizer: data race -// CHECK: Location is heap block of size 10 at {{.*}} allocated by thread T1 -// CHECK: #0 [[ALLOC_FRAME_0]] -// CHECK: #1 [[ALLOC_FRAME_1]] in alloc_func -// CHECK: #2 [[ALLOC_FRAME_2]] in AllocThread |

