comparison clang/test/CodeGenObjCXX/inheriting-constructor-cleanup.mm @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 79ff65ed7e25
children 1f2b6ac9f198
comparison
equal deleted inserted replaced
232:70dce7da266c 236:c4bab56944e8
1 // RUN: %clang_cc1 -triple x86_64-darwin -std=c++11 -fobjc-arc -emit-llvm -o - %s | FileCheck %s --implicit-check-not "call\ " 1 // RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-darwin -std=c++11 -fobjc-arc -emit-llvm -o - %s | FileCheck %s --implicit-check-not "call\ "
2 // rdar://problem/45805151 2 // rdar://problem/45805151
3 3
4 struct Strong { 4 struct Strong {
5 __strong id x; 5 __strong id x;
6 }; 6 };
20 id g(void); 20 id g(void);
21 void f() { 21 void f() {
22 Inheritor({g()}); 22 Inheritor({g()});
23 } 23 }
24 // CHECK-LABEL: define{{.*}} void @_Z1fv 24 // CHECK-LABEL: define{{.*}} void @_Z1fv
25 // CHECK: %[[TMP:.*]] = call i8* @_Z1gv() 25 // CHECK: %[[TMP:.*]] = call noundef i8* @_Z1gv()
26 // CHECK: {{.*}} = notail call i8* @llvm.objc.retainAutoreleasedReturnValue(i8* %[[TMP]]) 26 // CHECK: {{.*}} = notail call i8* @llvm.objc.retainAutoreleasedReturnValue(i8* %[[TMP]])
27 // CHECK: call void (%struct.Base*, i8*, ...) @_ZN4BaseC2E6Strongz(%struct.Base* {{.*}}, i8* {{.*}}) 27 // CHECK: call void (%struct.Base*, i8*, ...) @_ZN4BaseC2E6Strongz(%struct.Base* {{.*}}, i8* {{.*}})
28 // CHECK-NEXT: call void @_ZN9InheritorD1Ev(%struct.Inheritor* {{.*}}) 28 // CHECK-NEXT: call void @_ZN9InheritorD1Ev(%struct.Inheritor* {{.*}})
29 29
30 // CHECK-LABEL: define linkonce_odr void @_ZN4BaseC2E6Strongz(%struct.Base* {{.*}}, i8* {{.*}}, ...) 30 // CHECK-LABEL: define linkonce_odr void @_ZN4BaseC2E6Strongz(%struct.Base* {{.*}}, i8* {{.*}}, ...)