diff options
Diffstat (limited to 'lib/AST/ASTContext.cpp')
-rw-r--r-- | lib/AST/ASTContext.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index d4fe26ed67..652fcdf808 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -1210,6 +1210,18 @@ QualType ASTContext::getObjCInterfaceType(ObjCInterfaceDecl *Decl) { return QualType(Decl->TypeForDecl, 0); } +/// buildObjCInterfaceType - Returns a new type for the interface +/// declaration, regardless. It also removes any previously built +/// record declaration so caller can rebuild it. +QualType ASTContext::buildObjCInterfaceType(ObjCInterfaceDecl *Decl) { + const RecordDecl *&RD = ASTRecordForInterface[Decl]; + if (RD) + RD = 0; + Decl->TypeForDecl = new(*this,8) ObjCInterfaceType(Type::ObjCInterface, Decl); + Types.push_back(Decl->TypeForDecl); + return QualType(Decl->TypeForDecl, 0); +} + /// \brief Retrieve the template type parameter type for a template /// parameter with the given depth, index, and (optionally) name. QualType ASTContext::getTemplateTypeParmType(unsigned Depth, unsigned Index, |