diff options
Diffstat (limited to 'CodeGen/CodeGenTypes.cpp')
-rw-r--r-- | CodeGen/CodeGenTypes.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp index 6a2bb1e273..3888538864 100644 --- a/CodeGen/CodeGenTypes.cpp +++ b/CodeGen/CodeGenTypes.cpp @@ -136,8 +136,11 @@ const llvm::Type *CodeGenTypes::ConvertType(QualType T) { case Type::Tagged: const TagType &TT = cast<TagType>(Ty); const TagDecl *TD = TT.getDecl(); - llvm::Type *ResultType; + llvm::Type *&ResultType = TagDeclTypes[TD]; + if (ResultType) + return ResultType; + if (!TD->isDefinition()) { ResultType = llvm::OpaqueType::get(); } else { |