- Fix assert in clang_getCursorDecl (having to do with recently added ObjC_ProtocolRef).
- Make sure CHECK: lines in test case match the expected output. 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83316 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Index/c-index-api-test.m b/test/Index/c-index-api-test.m
index a50e6f3..12167d0 100644
--- a/test/Index/c-index-api-test.m
+++ b/test/Index/c-index-api-test.m
@@ -123,10 +123,10 @@
 // CHECK: <invalid loc>:86:2: TypedefDecl=id:0:0 [Context:id]
 // CHECK: <invalid loc>:86:3: TypedefDecl=id:0:0 [Context:id]
 // CHECK: c-index-api-test.m:86:5: VarDecl=c:86:12 [Context:c]
-// CHECK: c-index-api-test.m:86:6: ObjCProtocolRef=SubP [Context:SubP]
-// CHECK: c-index-api-test.m:86:7: ObjCProtocolRef=SubP [Context:SubP]
-// CHECK: c-index-api-test.m:86:8: ObjCProtocolRef=SubP [Context:SubP]
-// CHECK: c-index-api-test.m:86:9: ObjCProtocolRef=SubP [Context:SubP]
+// CHECK: c-index-api-test.m:86:6: ObjCProtocolRef=SubP:86:12 [Context:SubP]
+// CHECK: c-index-api-test.m:86:7: ObjCProtocolRef=SubP:86:12 [Context:SubP]
+// CHECK: c-index-api-test.m:86:8: ObjCProtocolRef=SubP:86:12 [Context:SubP]
+// CHECK: c-index-api-test.m:86:9: ObjCProtocolRef=SubP:86:12 [Context:SubP]
 // CHECK: c-index-api-test.m:86:10: VarDecl=c:86:12 [Context:c]
 // CHECK: c-index-api-test.m:86:12: VarDecl=c:86:12 [Context:c]
 // CHECK: c-index-api-test.m:86:13: VarDecl=c:86:12 [Context:c]
@@ -145,11 +145,11 @@
 // CHECK: <invalid loc>:87:2: TypedefDecl=id:0:0 [Context:id]
 // CHECK: <invalid loc>:87:3: TypedefDecl=id:0:0 [Context:id]
 // CHECK: c-index-api-test.m:87:5: VarDecl=d:87:13 [Context:d]
-// CHECK: c-index-api-test.m:87:6: ObjCProtocolRef=Proto [Context:Proto]
-// CHECK: c-index-api-test.m:87:7: ObjCProtocolRef=Proto [Context:Proto]
-// CHECK: c-index-api-test.m:87:8: ObjCProtocolRef=Proto [Context:Proto]
-// CHECK: c-index-api-test.m:87:9: ObjCProtocolRef=Proto [Context:Proto]
-// CHECK: c-index-api-test.m:87:10: ObjCProtocolRef=Proto [Context:Proto]
+// CHECK: c-index-api-test.m:87:6: ObjCProtocolRef=Proto:87:13 [Context:Proto]
+// CHECK: c-index-api-test.m:87:7: ObjCProtocolRef=Proto:87:13 [Context:Proto]
+// CHECK: c-index-api-test.m:87:8: ObjCProtocolRef=Proto:87:13 [Context:Proto]
+// CHECK: c-index-api-test.m:87:9: ObjCProtocolRef=Proto:87:13 [Context:Proto]
+// CHECK: c-index-api-test.m:87:10: ObjCProtocolRef=Proto:87:13 [Context:Proto]
 // CHECK: c-index-api-test.m:87:11: VarDecl=d:87:13 [Context:d]
 // CHECK: c-index-api-test.m:87:13: VarDecl=d:87:13 [Context:d]
 // CHECK: c-index-api-test.m:88:2: VarRef=d:87:13 [Context:main]
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index 90fe3a8..9204d18 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -606,7 +606,8 @@
     
   if (clang_isReference(C.kind)) {
     if (C.stmt) {
-      if (C.kind == CXCursor_ObjCClassRef)
+      if (C.kind == CXCursor_ObjCClassRef || 
+          C.kind == CXCursor_ObjCProtocolRef)
         return static_cast<Stmt *>(C.stmt);
       else
         return getDeclFromExpr(static_cast<Stmt *>(C.stmt));