// RUN: %clang_cc1 -triple x86_64-apple-darwin -x objective-c++ -fblocks -emit-llvm -o - %s | FileCheck -check-prefix=WITHOUT %s
// RUN: %clang_cc1 -triple x86_64-apple-darwin -x objective-c++ -fblocks -emit-llvm -o - %s -fsanitize=thread | FileCheck -check-prefix=TSAN %s

// WITHOUT-NOT: "sanitize_thread_no_checking_at_run_time"

__attribute__((objc_root_class))
@interface NSObject
- (void)dealloc;
@end

class NeedCleanup {
public:
  ~NeedCleanup() __attribute__((no_sanitize("thread"))) {}
};

@interface MyObject : NSObject {
  NeedCleanup v;
};
+ (void) initialize;
- (void) dealloc;
@end

@implementation MyObject
+ (void)initialize {
}
- (void)dealloc {
  [super dealloc];
}
@end

// TSAN: initialize{{.*}}) [[ATTR:#[0-9]+]]
// TSAN: dealloc{{.*}}) [[ATTR:#[0-9]+]]
// TSAN: cxx_destruct{{.*}}) [[ATTR:#[0-9]+]]

void test2(id x) {
  extern void test2_helper(id (^)(void));
  test2_helper(^{ return x; });
// TSAN: define linkonce_odr hidden void @__destroy_helper_block_8_32o(i8* %0) unnamed_addr [[ATTR:#[0-9]+]]
}

// TSAN: attributes [[ATTR]] = { noinline nounwind {{.*}} "sanitize_thread_no_checking_at_run_time" {{.*}} }
