blob: 08671fb79821bdfb5aff839ca57e06eb36a1e40f [file] [edit]
// RUN: %clang_cc1 -fsanitize=alloc-token -triple x86_64-apple-macosx10.15.0 -std=c++20 -fblocks -fobjc-arc -emit-llvm -disable-llvm-passes %s -o - | FileCheck %s
@class ObjCClass;
struct StructWithBlock {
void (^b)(void);
};
// CHECK-LABEL: define {{.*}}ptr @_Z22test_struct_with_blockv(
// CHECK: call noalias noundef nonnull ptr @_Znwm(i64 noundef 8){{.*}} !alloc_token [[META_STRUCTWITHBLOCK:![0-9]+]]
StructWithBlock *test_struct_with_block() {
return new StructWithBlock;
}
struct StructWithObjCPtr {
id obj;
Class cls;
ObjCClass *ptr;
};
// CHECK-LABEL: define {{.*}}ptr @_Z25test_struct_with_objc_ptrv(
// CHECK: call noalias noundef nonnull ptr @_Znwm(i64 noundef 24){{.*}} !alloc_token [[META_STRUCTWITHOBJCPTR:![0-9]+]]
StructWithObjCPtr *test_struct_with_objc_ptr() {
return new StructWithObjCPtr;
}
// CHECK: [[META_STRUCTWITHBLOCK]] = !{!"StructWithBlock", i1 true}
// CHECK: [[META_STRUCTWITHOBJCPTR]] = !{!"StructWithObjCPtr", i1 true}