aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/CIndex/CIndex.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index f2af27cd65..82f7fb8e2b 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -253,10 +253,12 @@ const char *clang_getCursorSpelling(CXCursor C)
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 @@ unsigned clang_isDefinition(enum CXCursorKind K)
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)