summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/test/lang/objc/real-definition/Bar.h12
-rw-r--r--lldb/test/lang/objc/real-definition/Bar.m43
-rw-r--r--lldb/test/lang/objc/real-definition/Foo.h11
-rw-r--r--lldb/test/lang/objc/real-definition/Foo.m25
-rw-r--r--lldb/test/lang/objc/real-definition/Makefile6
-rw-r--r--lldb/test/lang/objc/real-definition/main.m13
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;
+}
OpenPOWER on IntegriCloud