aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-01 06:23:52 +0000
committerChris Lattner <sabre@nondot.org>2009-04-01 06:23:52 +0000
commit03d9f34a96ea28eaa698cc779462a1ce1dc79105 (patch)
treef708dde3aed9bc81c5158e475bf63954c0237ede
parent5fb5dfb6646464db3cd6d54a6332375c8fe36b75 (diff)
remove ASTContext::buildObjCInterfaceType, which breaks canonical
types. It is no longer needed now that the code generator re-lays-out interfaces if they are defines after being laid out from a forward decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68194 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/ASTContext.h1
-rw-r--r--lib/AST/ASTContext.cpp12
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp2
-rw-r--r--lib/CodeGen/CGObjCMac.cpp5
4 files changed, 2 insertions, 18 deletions
diff --git a/include/clang/AST/ASTContext.h b/include/clang/AST/ASTContext.h
index 503c4639cc..4287494b3d 100644
--- a/include/clang/AST/ASTContext.h
+++ b/include/clang/AST/ASTContext.h
@@ -287,7 +287,6 @@ public:
/// specified typename decl.
QualType getTypedefType(TypedefDecl *Decl);
QualType getObjCInterfaceType(ObjCInterfaceDecl *Decl);
- QualType buildObjCInterfaceType(ObjCInterfaceDecl *Decl);
QualType getTemplateTypeParmType(unsigned Depth, unsigned Index,
IdentifierInfo *Name = 0);
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index bdc7e4484c..fc1e0a2062 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -1344,18 +1344,6 @@ 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) {
- 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,
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index bde6fba137..c0819369b1 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -749,7 +749,7 @@ void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var,
std::string Name = Decl->getNameAsString();
- QualType T = M->getContext().buildObjCInterfaceType(Decl);
+ QualType T = M->getContext().getObjCInterfaceType(Decl);
if (T->isIncompleteArrayType()) {
// CodeGen turns int[] into int[1] so we'll do the same here.
diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index 75cf4e76ab..351f8e2527 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -1459,7 +1459,7 @@ void CGObjCMac::GenerateClass(const ObjCImplementationDecl *ID) {
Interface->protocol_begin(),
Interface->protocol_end());
const llvm::Type *InterfaceTy =
- CGM.getTypes().ConvertType(CGM.getContext().buildObjCInterfaceType(Interface));
+ CGM.getTypes().ConvertType(CGM.getContext().getObjCInterfaceType(Interface));
unsigned Flags = eClassFlags_Factory;
unsigned Size = CGM.getTargetData().getTypePaddedSize(InterfaceTy);
@@ -4246,9 +4246,6 @@ void CGObjCNonFragileABIMac::GenerateClass(const ObjCImplementationDecl *ID) {
SuperClassGV = GetClassGlobal(ObjCClassName + RootClassName);
}
// FIXME: Gross
- ObjCInterfaceDecl *Interface =
- const_cast<ObjCInterfaceDecl*>(ID->getClassInterface());
- CGM.getTypes().ConvertType(CGM.getContext().buildObjCInterfaceType(Interface));
InstanceStart = InstanceSize = 0;
if (ObjCInterfaceDecl *OID =
const_cast<ObjCInterfaceDecl*>(ID->getClassInterface())) {