summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndex.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-03-15 23:47:49 +0000
committerTed Kremenek <kremenek@apple.com>2011-03-15 23:47:49 +0000
commit6f7008dcb6b4668f38a018df9cace7642b647be9 (patch)
treeb5109684268327425a4189f161127a7106d38c5e /clang/tools/libclang/CIndex.cpp
parenta4c3154fca89e91797a6c05281b79f9bb70e4902 (diff)
downloadbcm5719-llvm-6f7008dcb6b4668f38a018df9cace7642b647be9.tar.gz
bcm5719-llvm-6f7008dcb6b4668f38a018df9cace7642b647be9.zip
c-index-test shouldn't crash when a goto has no matching label. Fixes <rdar://problem/9123493>.
llvm-svn: 127711
Diffstat (limited to 'clang/tools/libclang/CIndex.cpp')
-rw-r--r--clang/tools/libclang/CIndex.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 290146fa4dd..538efd7ae38 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -3709,7 +3709,9 @@ CXCursor clang_getCursorReferenced(CXCursor C) {
if (clang_isStatement(C.kind)) {
Stmt *S = getCursorStmt(C);
if (GotoStmt *Goto = dyn_cast_or_null<GotoStmt>(S))
- return MakeCXCursor(Goto->getLabel()->getStmt(), getCursorDecl(C), tu);
+ if (LabelDecl *label = Goto->getLabel())
+ if (LabelStmt *labelS = label->getStmt())
+ return MakeCXCursor(labelS, getCursorDecl(C), tu);
return clang_getNullCursor();
}
OpenPOWER on IntegriCloud