aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-05-29 20:01:52 +0000
committerTed Kremenek <kremenek@apple.com>2010-05-29 20:01:52 +0000
commitb3da539e0dd33f3fbb55132de3c65e0b6e1a4bc4 (patch)
treeac85179f4e7d95ac3bcafbdd064e93d65b5e7f99
parent3cd09ccbb1a750a7b40593a7b0a2d95ee2a0ba0e (diff)
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
-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()) {