Don't add type names for enums; they're never used in LLVM IR.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129894 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
index f802b07..255d12f 100644
--- a/lib/CodeGen/CodeGenTypes.cpp
+++ b/lib/CodeGen/CodeGenTypes.cpp
@@ -65,22 +65,22 @@
   }
 }
 
-void CodeGenTypes::addTagTypeName(const TagDecl *TD, const llvm::Type *Ty,
-                                  llvm::StringRef suffix) {
+void CodeGenTypes::addRecordTypeName(const RecordDecl *RD, const llvm::Type *Ty,
+                                     llvm::StringRef suffix) {
   llvm::SmallString<256> TypeName;
   llvm::raw_svector_ostream OS(TypeName);
-  OS << TD->getKindName() << '.';
+  OS << RD->getKindName() << '.';
   
   // Name the codegen type after the typedef name
   // if there is no tag type name available
-  if (TD->getIdentifier()) {
+  if (RD->getIdentifier()) {
     // FIXME: We should not have to check for a null decl context here.
     // Right now we do it because the implicit Obj-C decls don't have one.
-    if (TD->getDeclContext())
-      OS << TD->getQualifiedNameAsString();
+    if (RD->getDeclContext())
+      OS << RD->getQualifiedNameAsString();
     else
-      TD->printName(OS);
-  } else if (const TypedefNameDecl *TDD = TD->getTypedefNameForAnonDecl()) {
+      RD->printName(OS);
+  } else if (const TypedefNameDecl *TDD = RD->getTypedefNameForAnonDecl()) {
     // FIXME: We should not have to check for a null decl context here.
     // Right now we do it because the implicit Obj-C decls don't have one.
     if (TDD->getDeclContext())
@@ -403,8 +403,9 @@
   case Type::Enum: {
     const TagDecl *TD = cast<TagType>(Ty).getDecl();
     const llvm::Type *Res = ConvertTagDeclType(TD);
-    
-    addTagTypeName(TD, Res, llvm::StringRef());
+
+    if (const RecordDecl *RD = dyn_cast<RecordDecl>(TD))
+      addRecordTypeName(RD, Res, llvm::StringRef());
     return Res;
   }
 
@@ -517,7 +518,7 @@
   if (layout.getBaseSubobjectLLVMType() != layout.getLLVMType())
     suffix = ".base";
 
-  addTagTypeName(RD, layout.getBaseSubobjectLLVMType(), suffix);
+  addRecordTypeName(RD, layout.getBaseSubobjectLLVMType(), suffix);
 }
 
 bool CodeGenTypes::isZeroInitializable(QualType T) {
diff --git a/lib/CodeGen/CodeGenTypes.h b/lib/CodeGen/CodeGenTypes.h
index a0e1caa..dc383cb 100644
--- a/lib/CodeGen/CodeGenTypes.h
+++ b/lib/CodeGen/CodeGenTypes.h
@@ -101,10 +101,10 @@
   /// used to handle cyclic structures properly.
   void HandleLateResolvedPointers();
 
-  /// addTagTypeName - Compute a name from the given tag decl with an optional
-  /// suffix and name the given LLVM type using it.
-  void addTagTypeName(const TagDecl *TD, const llvm::Type *Ty,
-                      llvm::StringRef suffix);
+  /// addRecordTypeName - Compute a name from the given record decl with an
+  /// optional suffix and name the given LLVM type using it.
+  void addRecordTypeName(const RecordDecl *RD, const llvm::Type *Ty,
+                         llvm::StringRef suffix);
 
 public:
   CodeGenTypes(ASTContext &Ctx, llvm::Module &M, const llvm::TargetData &TD,