diff options
-rw-r--r-- | lldb/test/lang/objc/real-definition/Bar.h | 12 | ||||
-rw-r--r-- | lldb/test/lang/objc/real-definition/Bar.m | 43 | ||||
-rw-r--r-- | lldb/test/lang/objc/real-definition/Foo.h | 11 | ||||
-rw-r--r-- | lldb/test/lang/objc/real-definition/Foo.m | 25 | ||||
-rw-r--r-- | lldb/test/lang/objc/real-definition/Makefile | 6 | ||||
-rw-r--r-- | lldb/test/lang/objc/real-definition/main.m | 13 |
6 files changed, 110 insertions, 0 deletions
diff --git a/lldb/test/lang/objc/real-definition/Bar.h b/lldb/test/lang/objc/real-definition/Bar.h new file mode 100644 index 00000000000..20a81faa101 --- /dev/null +++ b/lldb/test/lang/objc/real-definition/Bar.h @@ -0,0 +1,12 @@ +#import <Foundation/Foundation.h> + +@class InternalClass; + +@interface Bar : NSObject { + @private + InternalClass *storage; +} + +- (NSString *)description; + +@end
\ No newline at end of file diff --git a/lldb/test/lang/objc/real-definition/Bar.m b/lldb/test/lang/objc/real-definition/Bar.m new file mode 100644 index 00000000000..4b8503194c8 --- /dev/null +++ b/lldb/test/lang/objc/real-definition/Bar.m @@ -0,0 +1,43 @@ +#import "Bar.h" + +@interface InternalClass : NSObject { + @public + NSString *foo; + NSString *bar; +} +@end + +@implementation InternalClass +@end + +@interface Bar () +{ + NSString *_hidden_ivar; +} + +@end + +@implementation Bar + +- (id)init +{ + self = [super init]; + if (self) { + _hidden_ivar = [NSString stringWithFormat:@"%p: @Bar", self]; + } + return self; +} + +- (void)dealloc +{ + [_hidden_ivar release]; + [super dealloc]; +} + +- (NSString *)description +{ + return [_hidden_ivar copyWithZone:NULL]; +} + +@end +
\ No newline at end of file diff --git a/lldb/test/lang/objc/real-definition/Foo.h b/lldb/test/lang/objc/real-definition/Foo.h new file mode 100644 index 00000000000..14ff9eed50f --- /dev/null +++ b/lldb/test/lang/objc/real-definition/Foo.h @@ -0,0 +1,11 @@ +#import <Foundation/Foundation.h> + +#import "Bar.h" + +@interface Foo : NSObject { + Bar *_bar; +} + +- (NSString *)description; + +@end
\ No newline at end of file diff --git a/lldb/test/lang/objc/real-definition/Foo.m b/lldb/test/lang/objc/real-definition/Foo.m new file mode 100644 index 00000000000..0a3ff832ddd --- /dev/null +++ b/lldb/test/lang/objc/real-definition/Foo.m @@ -0,0 +1,25 @@ +#import "Foo.h" + +@implementation Foo + +- (id)init +{ + self = [super init]; + if (self) { + _bar = [[Bar alloc] init]; + } + return self; +} + +- (void)dealloc +{ + [_bar release]; + [super dealloc]; +} + +- (NSString *)description +{ + return [NSString stringWithFormat:@"%p: @Foo { _bar = %@ }", self, _bar]; +} + +@end diff --git a/lldb/test/lang/objc/real-definition/Makefile b/lldb/test/lang/objc/real-definition/Makefile new file mode 100644 index 00000000000..61cc3b3b6db --- /dev/null +++ b/lldb/test/lang/objc/real-definition/Makefile @@ -0,0 +1,6 @@ +LEVEL = ../../../make + +OBJC_SOURCES := Bar.m Foo.m main.m +LDFLAGS = $(CFLAGS) -lobjc -framework Foundation + +include $(LEVEL)/Makefile.rules diff --git a/lldb/test/lang/objc/real-definition/main.m b/lldb/test/lang/objc/real-definition/main.m new file mode 100644 index 00000000000..c5371cf86f7 --- /dev/null +++ b/lldb/test/lang/objc/real-definition/main.m @@ -0,0 +1,13 @@ +#include <stdio.h> +#include <stdint.h> +#import <Foundation/Foundation.h> +#import "Foo.h" + +int main (int argc, char const *argv[]) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + Foo *foo = [[Foo alloc] init]; + NSLog (@"foo is %@", foo); + [pool release]; + return 0; +} |