Mercurial > hg > CbC > CbC_llvm
diff clang/test/CodeGenObjC/arc-rv-attr.m @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 79ff65ed7e25 |
children | 1f2b6ac9f198 |
line wrap: on
line diff
--- a/clang/test/CodeGenObjC/arc-rv-attr.m Wed Jul 21 10:27:27 2021 +0900 +++ b/clang/test/CodeGenObjC/arc-rv-attr.m Wed Nov 09 17:45:10 2022 +0900 @@ -1,16 +1,17 @@ -// RUN: %clang_cc1 -triple arm64-apple-ios9 -fobjc-runtime=ios-9.0 -fobjc-arc -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK +// RUN: %clang_cc1 -no-opaque-pointers -triple arm64-apple-ios9 -fobjc-runtime=ios-9.0 -fobjc-arc -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK +// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-macosx10 -fobjc-runtime=ios-9.0 -fobjc-arc -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK @class A; A *makeA(void); -void test_assign() { +void test_assign(void) { __unsafe_unretained id x; x = makeA(); } // CHECK-LABEL: define{{.*}} void @test_assign() // CHECK: [[X:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A:.*]]* @makeA() [ "clang.arc.attachedcall"(i64 1) ] +// CHECK: [[T0:%.*]] = call [[A:.*]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.unsafeClaimAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: store i8* [[T1]], i8** [[X]] @@ -18,14 +19,14 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_assign_assign() { +void test_assign_assign(void) { __unsafe_unretained id x, y; x = y = makeA(); } // CHECK-LABEL: define{{.*}} void @test_assign_assign() // CHECK: [[X:%.*]] = alloca i8* // CHECK: [[Y:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 1) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.unsafeClaimAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: store i8* [[T1]], i8** [[Y]] @@ -36,7 +37,7 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_strong_assign_assign() { +void test_strong_assign_assign(void) { __strong id x; __unsafe_unretained id y; x = y = makeA(); @@ -44,7 +45,7 @@ // CHECK-LABEL: define{{.*}} void @test_strong_assign_assign() // CHECK: [[X:%.*]] = alloca i8* // CHECK: [[Y:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 0) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.retainAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: store i8* [[T1]], i8** [[Y]] @@ -59,7 +60,7 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_assign_strong_assign() { +void test_assign_strong_assign(void) { __unsafe_unretained id x; __strong id y; x = y = makeA(); @@ -67,7 +68,7 @@ // CHECK-LABEL: define{{.*}} void @test_assign_strong_assign() // CHECK: [[X:%.*]] = alloca i8* // CHECK: [[Y:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 0) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.retainAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: [[OLD:%.*]] = load i8*, i8** [[Y]] @@ -82,12 +83,12 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_init() { +void test_init(void) { __unsafe_unretained id x = makeA(); } // CHECK-LABEL: define{{.*}} void @test_init() // CHECK: [[X:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 1) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.unsafeClaimAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: store i8* [[T1]], i8** [[X]] @@ -95,14 +96,14 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_init_assignment() { +void test_init_assignment(void) { __unsafe_unretained id x; __unsafe_unretained id y = x = makeA(); } // CHECK-LABEL: define{{.*}} void @test_init_assignment() // CHECK: [[X:%.*]] = alloca i8* // CHECK: [[Y:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 1) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.unsafeClaimAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: store i8* [[T1]], i8** [[X]] @@ -113,14 +114,14 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_strong_init_assignment() { +void test_strong_init_assignment(void) { __unsafe_unretained id x; __strong id y = x = makeA(); } // CHECK-LABEL: define{{.*}} void @test_strong_init_assignment() // CHECK: [[X:%.*]] = alloca i8* // CHECK: [[Y:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 0) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.retainAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: store i8* [[T1]], i8** [[X]] @@ -133,14 +134,14 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_init_strong_assignment() { +void test_init_strong_assignment(void) { __strong id x; __unsafe_unretained id y = x = makeA(); } // CHECK-LABEL: define{{.*}} void @test_init_strong_assignment() // CHECK: [[X:%.*]] = alloca i8* // CHECK: [[Y:%.*]] = alloca i8* -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 0) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.retainAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: [[T1:%.*]] = bitcast [[A]]* [[T0]] to i8* // CHECK-NEXT: [[OLD:%.*]] = load i8*, i8** [[X]] @@ -155,19 +156,19 @@ // CHECK-NEXT: lifetime.end // CHECK-NEXT: ret void -void test_ignored() { +void test_ignored(void) { makeA(); } // CHECK-LABEL: define{{.*}} void @test_ignored() -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 1) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.unsafeClaimAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: ret void -void test_cast_to_void() { +void test_cast_to_void(void) { (void) makeA(); } // CHECK-LABEL: define{{.*}} void @test_cast_to_void() -// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i64 1) ] +// CHECK: [[T0:%.*]] = call [[A]]* @makeA() [ "clang.arc.attachedcall"(i8* (i8*)* @llvm.objc.unsafeClaimAutoreleasedReturnValue) ] // CHECK-NEXT: call void (...) @llvm.objc.clang.arc.noop.use({{.*}} [[T0]]) // CHECK-NEXT: ret void