From d86e6bc7ab4388a578daf46e7c76be9122a25072 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 5 Feb 2008 08:06:13 +0000 Subject: 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 --- CodeGen/CodeGenModule.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'CodeGen/CodeGenModule.cpp') diff --git a/CodeGen/CodeGenModule.cpp b/CodeGen/CodeGenModule.cpp index 9de5d3426f..eff26f91b1 100644 --- a/CodeGen/CodeGenModule.cpp +++ b/CodeGen/CodeGenModule.cpp @@ -261,6 +261,27 @@ void CodeGenModule::EmitGlobalVarDeclarator(const FileVarDecl *D) { EmitGlobalVar(D); } +void CodeGenModule::EmitType(const TypeDecl *D) { + if (isa(D)) { + // TODO: Emit debug info. + return; + } + + assert(!isa(D) && "FIXME: ADD OBJC SUPPORT"); + + // This must be a tag decl. + const TagDecl *TD = cast(D); + + // Get the LLVM type for this TagDecl. If it is non-opaque or if this decl + // is still a forward declaration, just return. + QualType NewTy = Context.getTagDeclType(const_cast(TD)); + const llvm::Type *T = Types.ConvertType(NewTy); + if (isa(T) && TD->isDefinition()) + // Make sure that this type is translated. + Types.ForceTypeCompilation(NewTy); +} + + /// getBuiltinLibFunction llvm::Function *CodeGenModule::getBuiltinLibFunction(unsigned BuiltinID) { if (BuiltinID > BuiltinFunctions.size()) -- cgit v1.2.3-18-g5258