aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/libclang/CXTypes.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/libclang/CXTypes.cpp b/tools/libclang/CXTypes.cpp
index 137370adb2..777afb9bb7 100644
--- a/tools/libclang/CXTypes.cpp
+++ b/tools/libclang/CXTypes.cpp
@@ -165,8 +165,15 @@ CXType clang_getPointeeType(CXType CT) {
}
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()) {