summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2009-10-05 17:58:19 +0000
committerSteve Naroff <snaroff@apple.com>2009-10-05 17:58:19 +0000
commitd7eb7179a2ccf65f43eae4e7cae0617f502cdef5 (patch)
treeff8666c4c51d79afaa0f20cd907a66b744a5d945 /clang
parente525d9ddc082b3bb4a3017795c261996599850b2 (diff)
downloadbcm5719-llvm-d7eb7179a2ccf65f43eae4e7cae0617f502cdef5.tar.gz
bcm5719-llvm-d7eb7179a2ccf65f43eae4e7cae0617f502cdef5.zip
- Fix assert in clang_getCursorDecl (having to do with recently added ObjC_ProtocolRef).
- Make sure CHECK: lines in test case match the expected output. llvm-svn: 83316
Diffstat (limited to 'clang')
-rw-r--r--clang/test/Index/c-index-api-test.m18
-rw-r--r--clang/tools/CIndex/CIndex.cpp3
2 files changed, 11 insertions, 10 deletions
diff --git a/clang/test/Index/c-index-api-test.m b/clang/test/Index/c-index-api-test.m
index a50e6f396ab..12167d020ab 100644
--- a/clang/test/Index/c-index-api-test.m
+++ b/clang/test/Index/c-index-api-test.m
@@ -123,10 +123,10 @@ int main (int argc, const char * argv[]) {
// 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 @@ int main (int argc, const char * argv[]) {
// 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/clang/tools/CIndex/CIndex.cpp b/clang/tools/CIndex/CIndex.cpp
index 90fe3a8d6ff..9204d1863d6 100644
--- a/clang/tools/CIndex/CIndex.cpp
+++ b/clang/tools/CIndex/CIndex.cpp
@@ -606,7 +606,8 @@ CXDecl clang_getCursorDecl(CXCursor C)
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));
OpenPOWER on IntegriCloud