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
diff --git a/test/CodeGenObjC/PR4894-recursive-debug-crash.m b/test/CodeGenObjC/PR4894-recursive-debug-crash.m
new file mode 100644
index 0000000..097d134
--- /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