Home | History | Annotate | Download | only in CodeGenObjC
      1 // RUN: %clang_cc1 -triple x86_64 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
      2 
      3 struct s0 {
      4   int x;
      5 };
      6 
      7 @interface C0
      8 @property int x0;
      9 @property _Complex int x1;
     10 @property struct s0 x2;
     11 @end
     12 
     13 // Check that we get exactly the message sends we expect, and no more.
     14 //
     15 // CHECK-LABEL: define void @f0
     16 void f0(C0 *a) {
     17 // CHECK: objc_msgSend
     18   int l0 = (a.x0 = 1);
     19 
     20 // CHECK: objc_msgSend
     21   _Complex int l1 = (a.x1 = 1);
     22 
     23 // CHECK: objc_msgSend
     24   struct s0 l2 = (a.x2 = (struct s0) { 1 });
     25 
     26 // CHECK: objc_msgSend
     27 // CHECK: objc_msgSend
     28   int l3 = (a.x0 += 1);
     29 
     30 // CHECK: objc_msgSend
     31 // CHECK: objc_msgSend
     32   _Complex int l4 = (a.x1 += 1);
     33 
     34 // CHECK-NOT: objc_msgSend
     35 // CHECK: }
     36 }
     37