Fix some newly added bugs uncovered by the RELEASE build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80813 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index f2af27c..82f7fb8 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -253,10 +253,12 @@
if (clang_isReference(C.kind)) {
switch (C.kind) {
- case CXCursor_ObjCSuperClassRef:
+ case CXCursor_ObjCSuperClassRef:
+ {
ObjCInterfaceDecl *OID = dyn_cast<ObjCInterfaceDecl>(ND);
assert(OID && "clang_getCursorLine(): Missing interface decl");
return OID->getSuperClass()->getIdentifier()->getName();
+ }
default:
return "<not implemented>";
}
@@ -326,24 +328,23 @@
static SourceLocation getLocationFromCursor(CXCursor C,
SourceManager &SourceMgr,
NamedDecl *ND) {
- SourceLocation SLoc;
if (clang_isReference(C.kind)) {
switch (C.kind) {
case CXCursor_ObjCSuperClassRef:
+ {
ObjCInterfaceDecl *OID = dyn_cast<ObjCInterfaceDecl>(ND);
assert(OID && "clang_getCursorLine(): Missing interface decl");
- SLoc = OID->getSuperClassLoc();
- break;
+ return OID->getSuperClassLoc();
+ }
default:
- break;
+ return SourceLocation();
}
} else { // We have a declaration or a definition.
- SLoc = ND->getLocation();
+ SourceLocation SLoc = ND->getLocation();
if (SLoc.isInvalid())
return SourceLocation();
- SLoc = SourceMgr.getSpellingLoc(SLoc); // handles macro instantiations.
+ return SourceMgr.getSpellingLoc(SLoc); // handles macro instantiations.
}
- return SLoc;
}
unsigned clang_getCursorLine(CXCursor C)