Although in C++ class name has external linkage, usually the definition of the 
class is available in the same translation unit when it's needed. So we make 
all of them invalid Entity.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107606 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Index/Entity.cpp b/lib/Index/Entity.cpp
index 0551ae5..06e22bb 100644
--- a/lib/Index/Entity.cpp
+++ b/lib/Index/Entity.cpp
@@ -46,6 +46,7 @@
   Entity VisitVarDecl(VarDecl *D);
   Entity VisitFieldDecl(FieldDecl *D);
   Entity VisitFunctionDecl(FunctionDecl *D);
+  Entity VisitTypeDecl(TypeDecl *D);
 };
 
 }
@@ -130,6 +131,13 @@
   return Entity();
 }
 
+Entity EntityGetter::VisitTypeDecl(TypeDecl *D) {
+  // Make TypeDecl an invalid Entity. Although in C++ class name has external
+  // linkage, usually the definition of the class is available in the same
+  // translation unit when it's needed. So we make all of them invalid Entity.
+  return Entity();
+}
+
 //===----------------------------------------------------------------------===//
 // EntityImpl Implementation
 //===----------------------------------------------------------------------===//