37 lines
		
	
	
		
			683 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			683 B
		
	
	
	
		
			Objective-C
		
	
	
	
| // RUN: %clang_cc1 -triple x86_64 -fobjc-fragile-abi -emit-llvm -o - %s | FileCheck %s
 | |
| 
 | |
| struct s0 {
 | |
|   int x;
 | |
| };
 | |
| 
 | |
| @interface C0
 | |
| @property int x0;
 | |
| @property _Complex int x1;
 | |
| @property struct s0 x2;
 | |
| @end
 | |
| 
 | |
| // Check that we get exactly the message sends we expect, and no more.
 | |
| //
 | |
| // CHECK: define void @f0
 | |
| void f0(C0 *a) {
 | |
| // CHECK: objc_msgSend
 | |
|   int l0 = (a.x0 = 1);
 | |
| 
 | |
| // CHECK: objc_msgSend
 | |
|   _Complex int l1 = (a.x1 = 1);
 | |
| 
 | |
| // CHECK: objc_msgSend
 | |
|   struct s0 l2 = (a.x2 = (struct s0) { 1 });
 | |
| 
 | |
| // CHECK: objc_msgSend
 | |
| // CHECK: objc_msgSend
 | |
|   int l3 = (a.x0 += 1);
 | |
| 
 | |
| // CHECK: objc_msgSend
 | |
| // CHECK: objc_msgSend
 | |
|   _Complex int l4 = (a.x1 += 1);
 | |
| 
 | |
| // CHECK-NOT: objc_msgSend
 | |
| // CHECK: }
 | |
| }
 |