[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