// RUN: clang -fnext-runtime -emit-llvm -o %t %s | |
@interface Object | |
- (id) new; | |
@end | |
@interface SomeClass : Object | |
{ | |
int _myValue; | |
} | |
@property int myValue; | |
@end | |
@implementation SomeClass | |
@synthesize myValue=_myValue; | |
@end | |
int main() | |
{ | |
int val; | |
SomeClass *o = [SomeClass new]; | |
o.myValue = -1; | |
val = o.myValue++; /* val -1, o.myValue 0 */ | |
val += o.myValue--; /* val -1. o.myValue -1 */ | |
val += ++o.myValue; /* val -1, o.myValue 0 */ | |
val += --o.myValue; /* val -2, o.myValue -1 */ | |
return ++o.myValue + (val+2); | |
} | |