diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-12-07 18:32:03 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-12-07 18:32:03 +0000 |
commit | 14a49e2fbe1c2d8eafca6cf3a28458c6d8561372 (patch) | |
tree | 608dc459e3378fdd85ee297fb2896d5b638af661 /clang/test/ASTMerge | |
parent | 2a43368a03d807676eb4318fa0e8ccfb7ed885b8 (diff) | |
download | bcm5719-llvm-14a49e2fbe1c2d8eafca6cf3a28458c6d8561372.tar.gz bcm5719-llvm-14a49e2fbe1c2d8eafca6cf3a28458c6d8561372.zip |
Implement AST import for Objective-C property implementations
(@synthesize and @dynamic).
llvm-svn: 121159
Diffstat (limited to 'clang/test/ASTMerge')
-rw-r--r-- | clang/test/ASTMerge/Inputs/property1.m | 19 | ||||
-rw-r--r-- | clang/test/ASTMerge/Inputs/property2.m | 20 | ||||
-rw-r--r-- | clang/test/ASTMerge/property.m | 6 |
3 files changed, 44 insertions, 1 deletions
diff --git a/clang/test/ASTMerge/Inputs/property1.m b/clang/test/ASTMerge/Inputs/property1.m index 37887a34f76..22fe0a02220 100644 --- a/clang/test/ASTMerge/Inputs/property1.m +++ b/clang/test/ASTMerge/Inputs/property1.m @@ -10,3 +10,22 @@ @property (readonly) float Prop1; @end +// Properties with implementations +@interface I3 { + int ivar1; + int ivar2; + int ivar3; + int Prop4; +} +@property int Prop1; +@property int Prop2; +@property int Prop3; +@property int Prop4; +@end + +@implementation I3 +@synthesize Prop1 = ivar1; +@synthesize Prop2 = ivar3; +@dynamic Prop3; +@synthesize Prop4; +@end diff --git a/clang/test/ASTMerge/Inputs/property2.m b/clang/test/ASTMerge/Inputs/property2.m index 6039f10ec6e..64a03fb04ec 100644 --- a/clang/test/ASTMerge/Inputs/property2.m +++ b/clang/test/ASTMerge/Inputs/property2.m @@ -11,3 +11,23 @@ @interface I2 @property (readonly) int Prop1; @end + +// Properties with implementations +@interface I3 { + int ivar1; + int ivar2; + int ivar3; + int Prop4; +} +@property int Prop1; +@property int Prop2; +@property int Prop3; +@property int Prop4; +@end + +@implementation I3 +@synthesize Prop2 = ivar2; +@synthesize Prop1 = ivar1; +@synthesize Prop3 = ivar3; +@synthesize Prop4 = Prop4; +@end diff --git a/clang/test/ASTMerge/property.m b/clang/test/ASTMerge/property.m index 5f7a7308da6..a8dd7c420c8 100644 --- a/clang/test/ASTMerge/property.m +++ b/clang/test/ASTMerge/property.m @@ -6,4 +6,8 @@ // CHECK: property1.m:10:28: note: declared here with type 'float' // CHECK: property2.m:12:26: error: instance method 'Prop1' has incompatible result types in different translation units ('int' vs. 'float') // CHECK: property1.m:10:28: note: instance method 'Prop1' also declared here -// CHECK: 2 errors generated. +// CHECK: property1.m:28:21: error: property 'Prop2' is synthesized to different ivars in different translation units ('ivar3' vs. 'ivar2') +// CHECK: property2.m:29:21: note: property is synthesized to ivar 'ivar2' here +// CHECK: property1.m:29:10: error: property 'Prop3' is implemented with @dynamic in one translation but @synthesize in another translation unit +// CHECK: property2.m:31:13: note: property 'Prop3' is implemented with @synthesize here +// CHECK: 4 errors generated. |