diff options
| author | Reid Kleckner <rnk@google.com> | 2015-08-12 22:58:56 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2015-08-12 22:58:56 +0000 |
| commit | e7ffbffaef0d820e3227b43881288b1cf222af90 (patch) | |
| tree | b83aee48ea59a095f307166da99f7d089ca79bc4 /compiler-rt/test/asan/TestCases/deep_thread_stack.cc | |
| parent | 8533e96e42d9e3c3f1a89fb4e8102b192a153370 (diff) | |
| download | bcm5719-llvm-e7ffbffaef0d820e3227b43881288b1cf222af90.tar.gz bcm5719-llvm-e7ffbffaef0d820e3227b43881288b1cf222af90.zip | |
Move tests that use unistd.h and pthread.h to TestCases/Posix
llvm-svn: 244827
Diffstat (limited to 'compiler-rt/test/asan/TestCases/deep_thread_stack.cc')
| -rw-r--r-- | compiler-rt/test/asan/TestCases/deep_thread_stack.cc | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/compiler-rt/test/asan/TestCases/deep_thread_stack.cc b/compiler-rt/test/asan/TestCases/deep_thread_stack.cc deleted file mode 100644 index 535da79ff58..00000000000 --- a/compiler-rt/test/asan/TestCases/deep_thread_stack.cc +++ /dev/null @@ -1,58 +0,0 @@ -// RUN: %clangxx_asan -O0 %s -pthread -o %t && not %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_asan -O1 %s -pthread -o %t && not %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_asan -O2 %s -pthread -o %t && not %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_asan -O3 %s -pthread -o %t && not %run %t 2>&1 | FileCheck %s -// REQUIRES: stable-runtime - -#include <pthread.h> - -int *x; - -void *AllocThread(void *arg) { - x = new int; - *x = 42; - return NULL; -} - -void *FreeThread(void *arg) { - delete x; - return NULL; -} - -void *AccessThread(void *arg) { - *x = 43; // BOOM - return NULL; -} - -typedef void* (*callback_type)(void* arg); - -void *RunnerThread(void *function) { - pthread_t thread; - pthread_create(&thread, NULL, (callback_type)function, NULL); - pthread_join(thread, NULL); - return NULL; -} - -void RunThread(callback_type function) { - pthread_t runner; - pthread_create(&runner, NULL, RunnerThread, (void*)function); - pthread_join(runner, NULL); -} - -int main(int argc, char *argv[]) { - RunThread(AllocThread); - RunThread(FreeThread); - RunThread(AccessThread); - return (x != 0); -} - -// CHECK: AddressSanitizer: heap-use-after-free -// CHECK: WRITE of size 4 at 0x{{.*}} thread T[[ACCESS_THREAD:[0-9]+]] -// CHECK: freed by thread T[[FREE_THREAD:[0-9]+]] here: -// CHECK: previously allocated by thread T[[ALLOC_THREAD:[0-9]+]] here: -// CHECK: Thread T[[ACCESS_THREAD]] created by T[[ACCESS_RUNNER:[0-9]+]] here: -// CHECK: Thread T[[ACCESS_RUNNER]] created by T0 here: -// CHECK: Thread T[[FREE_THREAD]] created by T[[FREE_RUNNER:[0-9]+]] here: -// CHECK: Thread T[[FREE_RUNNER]] created by T0 here: -// CHECK: Thread T[[ALLOC_THREAD]] created by T[[ALLOC_RUNNER:[0-9]+]] here: -// CHECK: Thread T[[ALLOC_RUNNER]] created by T0 here: |

