37 lines · plain
1// RUN: %clangxx_tsan %s -o %t -framework Foundation2// RUN: %run %t 2>&1 | FileCheck %s3 4#import <Foundation/Foundation.h>5 6#import <memory>7 8struct InnerStruct {9 ~InnerStruct() {10 fprintf(stderr, "~InnerStruct\n");11 }12};13 14struct MyStruct {15 std::shared_ptr<InnerStruct> inner_object;16 ~MyStruct() {17 fprintf(stderr, "~MyStruct\n");18 }19};20 21int main(int argc, const char *argv[]) {22 fprintf(stderr, "Hello world.\n");23 24 {25 std::shared_ptr<MyStruct> shared(new MyStruct());26 shared->inner_object = std::shared_ptr<InnerStruct>(new InnerStruct());27 }28 29 fprintf(stderr, "Done.\n");30}31 32// CHECK: Hello world.33// CHECK: ~MyStruct34// CHECK: ~InnerStruct35// CHECK: Done.36// CHECK-NOT: WARNING: ThreadSanitizer37