[llvm-commits] [test-suite] r103206 - /test-suite/trunk/SingleSource/UnitTests/ObjC++/setter-getter-test.mm
Fariborz Jahanian
fjahanian at apple.com
Thu May 6 15:59:54 PDT 2010
Author: fjahanian
Date: Thu May 6 17:59:54 2010
New Revision: 103206
URL: http://llvm.org/viewvc/llvm-project?rev=103206&view=rev
Log:
Test case for radar 7468090.
Added:
test-suite/trunk/SingleSource/UnitTests/ObjC++/setter-getter-test.mm
Added: test-suite/trunk/SingleSource/UnitTests/ObjC++/setter-getter-test.mm
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC%2B%2B/setter-getter-test.mm?rev=103206&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC++/setter-getter-test.mm (added)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC++/setter-getter-test.mm Thu May 6 17:59:54 2010
@@ -0,0 +1,49 @@
+#import <Foundation/Foundation.h>
+// Test case for radar 7468090
+
+extern "C" int printf(const char *, ...);
+
+class S {
+public:
+ S& operator = (const S& val) {
+ this->member = val.member;
+ this->member++;
+ return *this;
+ }
+ S (const S& val) {
+ this->member = val.member;
+ this->member++;
+ }
+ S () : member(10) {
+ }
+ int member;
+};
+
+ at interface I : NSObject {
+ S position;
+}
+ at property(assign, nonatomic) S position;
+- (void)finalize;
+
+ at end
+
+ at implementation I
+ at synthesize position;
+- (void)finalize { [super finalize]; }
+ at end
+
+int main() {
+ I *i = [[I alloc] init];
+
+ i.position.member = 100;
+
+ printf("i.position.member = %d\n", i.position.member);
+
+ S s1 = i.position;
+
+ printf("i.position.member = %d\n", i.position.member);
+
+ [i release];
+ return 0;
+
+}
More information about the llvm-commits
mailing list