1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -emit-llvm -o %t %s 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc@interface Object 4*f4a2713aSLionel Sambuc- (id) new; 5*f4a2713aSLionel Sambuc@end 6*f4a2713aSLionel Sambuc 7*f4a2713aSLionel Sambuc@interface SomeClass : Object 8*f4a2713aSLionel Sambuc{ 9*f4a2713aSLionel Sambuc int _myValue; 10*f4a2713aSLionel Sambuc} 11*f4a2713aSLionel Sambuc@property int myValue; 12*f4a2713aSLionel Sambuc@end 13*f4a2713aSLionel Sambuc 14*f4a2713aSLionel Sambuc@implementation SomeClass 15*f4a2713aSLionel Sambuc@synthesize myValue=_myValue; 16*f4a2713aSLionel Sambuc@end 17*f4a2713aSLionel Sambuc 18*f4a2713aSLionel Sambucint main() 19*f4a2713aSLionel Sambuc{ 20*f4a2713aSLionel Sambuc int val; 21*f4a2713aSLionel Sambuc SomeClass *o = [SomeClass new]; 22*f4a2713aSLionel Sambuc o.myValue = -1; 23*f4a2713aSLionel Sambuc val = o.myValue++; /* val -1, o.myValue 0 */ 24*f4a2713aSLionel Sambuc val += o.myValue--; /* val -1. o.myValue -1 */ 25*f4a2713aSLionel Sambuc val += ++o.myValue; /* val -1, o.myValue 0 */ 26*f4a2713aSLionel Sambuc val += --o.myValue; /* val -2, o.myValue -1 */ 27*f4a2713aSLionel Sambuc return ++o.myValue + (val+2); 28*f4a2713aSLionel Sambuc} 29*f4a2713aSLionel Sambuc 30