[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGenObjC / assign.m
blob13117230d0c5adc002a74f618e43a8b3007f0e6c
1 // RUN: %clang_cc1 -triple x86_64 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
3 struct s0 {
4   int x;
5 };
7 @interface C0
8 @property int x0;
9 @property _Complex int x1;
10 @property struct s0 x2;
11 @end
13 // Check that we get exactly the message sends we expect, and no more.
15 // CHECK-LABEL: define{{.*}} void @f0
16 void f0(C0 *a) {
17 // CHECK: objc_msgSend
18   int l0 = (a.x0 = 1);
20 // CHECK: objc_msgSend
21   _Complex int l1 = (a.x1 = 1);
23 // CHECK: objc_msgSend
24   struct s0 l2 = (a.x2 = (struct s0) { 1 });
26 // CHECK: objc_msgSend
27 // CHECK: objc_msgSend
28   int l3 = (a.x0 += 1);
30 // CHECK: objc_msgSend
31 // CHECK: objc_msgSend
32   _Complex int l4 = (a.x1 += 1);
34 // CHECK-NOT: objc_msgSend
35 // CHECK: }