aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-22 02:18:40 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-22 02:18:40 +0000
commita626b0170c4adf9c29cc772cf0cb0254a9626939 (patch)
tree681b903baf6e5c00bd6a26fa36d56888d12ffcee
parentd172bf39274242031769f4f08ed936776f4dbcae (diff)
Add test case for PR4894 (it was fixed in LLVM).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82510 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGenObjC/PR4894-recursive-debug-crash.m39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/CodeGenObjC/PR4894-recursive-debug-crash.m b/test/CodeGenObjC/PR4894-recursive-debug-crash.m
new file mode 100644
index 0000000000..097d1344f2
--- /dev/null
+++ b/test/CodeGenObjC/PR4894-recursive-debug-crash.m
@@ -0,0 +1,39 @@
+// RUN: clang-cc -g -emit-llvm %s -o - | FileCheck %s
+// PR4894
+//
+// This test is actually just making sure we can generate the debug info for the
+// return type from im0 without crashing.
+
+@interface I0 {
+ I0 *_iv0;
+}
+@end
+@protocol P0 @end
+
+@interface I1 @end
+@implementation I1
+- (I0<P0> *) im0 {
+// CHECK: @"\01-[I1 im0]"
+// CHECK: llvm.dbg.func.start
+ return 0;
+}
+@end
+
+// FIXME: This was another PR4894 test case, which is crashing somewhere
+// else. PR5025.
+#if 0
+typedef const struct objc_selector {
+ void *sel_id;
+ const char *sel_types;
+} *SEL;
+
+@interface I2
++(id) dictionary;
+@end
+
+@implementation I3;
++(void) initialize {
+ I2 *a0 = [I2 dictionary];
+}
+@end
+#endif