Dereferencing NULL pointers is such poor form.

llvm-svn: 111150
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index a573fb4..b54162f 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/lib/Frontend/ASTUnit.cpp
@@ -191,10 +191,14 @@
                                                         Ctx->getLangOptions());
       CachedResult.Priority = Results[I].Priority;
       CachedResult.Kind = Results[I].CursorKind;
-      CachedResult.TypeClass
-        = getSimplifiedTypeClass(
-              Ctx->getCanonicalType(getDeclUsageType(*Ctx, 
-                                                     Results[I].Declaration)));
+
+      QualType UsageType = getDeclUsageType(*Ctx, Results[I].Declaration);
+      if (UsageType.isNull())
+        CachedResult.TypeClass = STC_Void;
+      else {
+        CachedResult.TypeClass
+          = getSimplifiedTypeClass(Ctx->getCanonicalType(UsageType));
+      }
       CachedCompletionResults.push_back(CachedResult);
       break;
     }