Add check for an invalid CXType in clang_getTypeDeclaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105111 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/CXTypes.cpp b/tools/libclang/CXTypes.cpp
index 137370a..777afb9 100644
--- a/tools/libclang/CXTypes.cpp
+++ b/tools/libclang/CXTypes.cpp
@@ -165,8 +165,15 @@
}
CXCursor clang_getTypeDeclaration(CXType CT) {
+ if (CT.kind == CXType_Invalid)
+ return cxcursor::MakeCXCursorInvalid(CXCursor_NoDeclFound);
+
QualType T = GetQualType(CT);
Type *TP = T.getTypePtr();
+
+ if (!TP)
+ return cxcursor::MakeCXCursorInvalid(CXCursor_NoDeclFound);
+
Decl *D = 0;
switch (TP->getTypeClass()) {