Watch out for NULL types in NameSearchContext::AddTypeDecl or we crash.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124051 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangASTSource.cpp b/source/Expression/ClangASTSource.cpp
index b18536b..a23547d 100644
--- a/source/Expression/ClangASTSource.cpp
+++ b/source/Expression/ClangASTSource.cpp
@@ -240,26 +240,26 @@
 clang::NamedDecl *
 NameSearchContext::AddTypeDecl(void *type)
 {
-    QualType qual_type = QualType::getFromOpaquePtr(type);
+    if (type)
+    {
+        QualType qual_type = QualType::getFromOpaquePtr(type);
 
-    if (TagType *tag_type = dyn_cast<clang::TagType>(qual_type))
-    {
-        TagDecl *tag_decl = tag_type->getDecl();
-        
-        m_decls.push_back(tag_decl);
-        
-        return tag_decl;
+        if (TagType *tag_type = dyn_cast<clang::TagType>(qual_type))
+        {
+            TagDecl *tag_decl = tag_type->getDecl();
+            
+            m_decls.push_back(tag_decl);
+            
+            return tag_decl;
+        }
+        else if (ObjCObjectType *objc_object_type = dyn_cast<clang::ObjCObjectType>(qual_type))
+        {
+            ObjCInterfaceDecl *interface_decl = objc_object_type->getInterface();
+            
+            m_decls.push_back((NamedDecl*)interface_decl);
+            
+            return (NamedDecl*)interface_decl;
+        }
     }
-    else if (ObjCObjectType *objc_object_type = dyn_cast<clang::ObjCObjectType>(qual_type))
-    {
-        ObjCInterfaceDecl *interface_decl = objc_object_type->getInterface();
-        
-        m_decls.push_back((NamedDecl*)interface_decl);
-        
-        return (NamedDecl*)interface_decl;
-    }
-    else
-    {
-        return NULL;
-    }
+    return NULL;
 }