rewrite some of the type refinement code to eliminate dangling pointers
simplify the code and generally make it more robust.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46745 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/ASTConsumers.cpp b/Driver/ASTConsumers.cpp
index b96a905..904a22e 100644
--- a/Driver/ASTConsumers.cpp
+++ b/Driver/ASTConsumers.cpp
@@ -635,10 +635,7 @@
       } else if (LinkageSpecDecl *LSD = dyn_cast<LinkageSpecDecl>(D)) {
         CodeGen::CodeGenLinkageSpec(Builder, LSD);
       } else {
-        assert(isa<TypeDecl>(D) && "Only expected type decls here");
-        // don't codegen for now, eventually pass down for debug info.
-        //std::cerr << "Read top-level typedef decl: '"
-        //    << D->getName() << "'\n";
+        CodeGen::CodeGenTypeDecl(Builder, cast<TypeDecl>(D));
       }
     }
   };