aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-22 06:50:37 +0000
committerChris Lattner <sabre@nondot.org>2009-04-22 06:50:37 +0000
commit068360e16fa4504a6fb80affebae5c5713629a96 (patch)
tree73965a02401f27ee14a26f869428000beed5cd59
parentc6fa4450b827d1e3674494fc9659eae006a86b49 (diff)
ObjCQualifiedClass is dead, remove it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69783 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/Type.h44
-rw-r--r--include/clang/AST/TypeNodes.def1
-rw-r--r--include/clang/Frontend/PCHBitCodes.h4
-rw-r--r--lib/AST/ASTContext.cpp4
-rw-r--r--lib/AST/Type.cpp3
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp1
-rw-r--r--lib/CodeGen/CodeGenTypes.cpp1
-rw-r--r--lib/Frontend/PCHReader.cpp6
-rw-r--r--lib/Frontend/PCHWriter.cpp8
-rw-r--r--lib/Sema/SemaTemplateInstantiate.cpp8
10 files changed, 2 insertions, 78 deletions
diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h
index d5d607fde9..19f12adb7d 100644
--- a/include/clang/AST/Type.h
+++ b/include/clang/AST/Type.h
@@ -1872,50 +1872,6 @@ public:
};
-/// ObjCQualifiedClassType - to represent Class<protocol-list>.
-///
-/// Duplicate protocols are removed and protocol list is canonicalized to be in
-/// alphabetical order.
-class ObjCQualifiedClassType : public Type,
- public llvm::FoldingSetNode {
- // List of protocols for this protocol conforming 'id' type
- // List is sorted on protocol name. No protocol is enterred more than once.
- llvm::SmallVector<ObjCProtocolDecl*, 8> Protocols;
-
- ObjCQualifiedClassType(ObjCProtocolDecl **Protos, unsigned NumP)
- : Type(ObjCQualifiedClass, QualType()/*these are always canonical*/,
- /*Dependent=*/false),
- Protocols(Protos, Protos+NumP) { }
- friend class ASTContext; // ASTContext creates these.
-public:
-
- ObjCProtocolDecl *getProtocols(unsigned i) const {
- return Protocols[i];
- }
- unsigned getNumProtocols() const {
- return Protocols.size();
- }
- ObjCProtocolDecl **getReferencedProtocols() {
- return &Protocols[0];
- }
-
- typedef llvm::SmallVector<ObjCProtocolDecl*, 8>::const_iterator qual_iterator;
- qual_iterator qual_begin() const { return Protocols.begin(); }
- qual_iterator qual_end() const { return Protocols.end(); }
-
- virtual void getAsStringInternal(std::string &InnerString) const;
-
- void Profile(llvm::FoldingSetNodeID &ID);
- static void Profile(llvm::FoldingSetNodeID &ID,
- ObjCProtocolDecl **protocols, unsigned NumProtocols);
-
- static bool classof(const Type *T) {
- return T->getTypeClass() == ObjCQualifiedClass;
- }
- static bool classof(const ObjCQualifiedClassType *) { return true; }
-
-};
-
// Inline function definitions.
/// getUnqualifiedType - Return the type without any qualifiers.
diff --git a/include/clang/AST/TypeNodes.def b/include/clang/AST/TypeNodes.def
index e98ff4200f..a14d85027a 100644
--- a/include/clang/AST/TypeNodes.def
+++ b/include/clang/AST/TypeNodes.def
@@ -78,7 +78,6 @@ DEPENDENT_TYPE(Typename, Type)
TYPE(ObjCInterface, Type)
TYPE(ObjCQualifiedInterface, ObjCInterfaceType)
TYPE(ObjCQualifiedId, Type)
-TYPE(ObjCQualifiedClass, Type)
#undef DEPENDENT_TYPE
#undef NON_CANONICAL_TYPE
diff --git a/include/clang/Frontend/PCHBitCodes.h b/include/clang/Frontend/PCHBitCodes.h
index d40e970e07..41369b37d7 100644
--- a/include/clang/Frontend/PCHBitCodes.h
+++ b/include/clang/Frontend/PCHBitCodes.h
@@ -317,9 +317,7 @@ namespace clang {
/// \brief An ObjCQualifiedInterfaceType record.
TYPE_OBJC_QUALIFIED_INTERFACE = 22,
/// \brief An ObjCQualifiedIdType record.
- TYPE_OBJC_QUALIFIED_ID = 23,
- /// \brief An ObjCQualifiedClassType record.
- TYPE_OBJC_QUALIFIED_CLASS = 24
+ TYPE_OBJC_QUALIFIED_ID = 23
};
/// \brief The type IDs for special types constructed by semantic
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index 02bedcaf78..1e553e3aba 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -431,7 +431,6 @@ ASTContext::getTypeInfo(const Type *T) {
// alignment requirements: getPointerInfo should take an AddrSpace.
return getTypeInfo(QualType(cast<ExtQualType>(T)->getBaseType(), 0));
case Type::ObjCQualifiedId:
- case Type::ObjCQualifiedClass:
case Type::ObjCQualifiedInterface:
Width = Target.getPointerWidth(0);
Align = Target.getPointerAlign(0);
@@ -3136,9 +3135,6 @@ QualType ASTContext::mergeTypes(QualType LHS, QualType RHS) {
case Type::FixedWidthInt:
// Distinct fixed-width integers are not compatible.
return QualType();
- case Type::ObjCQualifiedClass:
- // Distinct qualified classes are not compatible.
- return QualType();
case Type::ExtQual:
// FIXME: ExtQual types can be compatible even if they're not
// identical!
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index 97245c699a..7daa20704b 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -768,8 +768,7 @@ bool Type::isScalarType() const {
isa<BlockPointerType>(CanonicalType) ||
isa<MemberPointerType>(CanonicalType) ||
isa<ComplexType>(CanonicalType) ||
- isa<ObjCQualifiedIdType>(CanonicalType) ||
- isa<ObjCQualifiedClassType>(CanonicalType);
+ isa<ObjCQualifiedIdType>(CanonicalType);
}
/// \brief Determines whether the type is a C++ aggregate type or C
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index 1c6043b7d6..ae8214e24a 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -582,7 +582,6 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty,
case Type::MemberPointer:
case Type::TemplateSpecialization:
case Type::QualifiedName:
- case Type::ObjCQualifiedClass:
// Unsupported types
return llvm::DIType();
diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
index 5d98b453ac..24f4885970 100644
--- a/lib/CodeGen/CodeGenTypes.cpp
+++ b/lib/CodeGen/CodeGenTypes.cpp
@@ -378,7 +378,6 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) {
}
case Type::ObjCQualifiedId:
- case Type::ObjCQualifiedClass:
// Protocols don't influence the LLVM type.
return ConvertTypeRecursive(Context.getObjCIdType());
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp
index 3a311d49c2..8e1118cb7f 100644
--- a/lib/Frontend/PCHReader.cpp
+++ b/lib/Frontend/PCHReader.cpp
@@ -2103,13 +2103,7 @@ QualType PCHReader::ReadTypeRecord(uint64_t Offset) {
Protos.push_back(cast<ObjCProtocolDecl>(GetDecl(Record[Idx++])));
return Context.getObjCQualifiedIdType(&Protos[0], NumProtos);
}
-
- case pch::TYPE_OBJC_QUALIFIED_CLASS:
- // FIXME: Deserialize ObjCQualifiedClassType
- assert(false && "Cannot de-serialize ObjC qualified class types yet");
- return QualType();
}
-
// Suppress a GCC warning
return QualType();
}
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp
index 760578164b..f34323c160 100644
--- a/lib/Frontend/PCHWriter.cpp
+++ b/lib/Frontend/PCHWriter.cpp
@@ -228,14 +228,6 @@ void PCHTypeWriter::VisitObjCQualifiedIdType(const ObjCQualifiedIdType *T) {
Code = pch::TYPE_OBJC_QUALIFIED_ID;
}
-void
-PCHTypeWriter::VisitObjCQualifiedClassType(const ObjCQualifiedClassType *T) {
- Record.push_back(T->getNumProtocols());
- for (unsigned I = 0, N = T->getNumProtocols(); I != N; ++I)
- Writer.AddDeclRef(T->getProtocols(I), Record);
- Code = pch::TYPE_OBJC_QUALIFIED_CLASS;
-}
-
//===----------------------------------------------------------------------===//
// Declaration serialization
//===----------------------------------------------------------------------===//
diff --git a/lib/Sema/SemaTemplateInstantiate.cpp b/lib/Sema/SemaTemplateInstantiate.cpp
index 1a67fd1248..bd385d355b 100644
--- a/lib/Sema/SemaTemplateInstantiate.cpp
+++ b/lib/Sema/SemaTemplateInstantiate.cpp
@@ -540,14 +540,6 @@ InstantiateObjCQualifiedIdType(const ObjCQualifiedIdType *T,
return QualType();
}
-QualType
-TemplateTypeInstantiator::
-InstantiateObjCQualifiedClassType(const ObjCQualifiedClassType *T,
- unsigned Quals) const {
- assert(false && "Objective-C types cannot be dependent");
- return QualType();
-}
-
/// \brief The actual implementation of Sema::InstantiateType().
QualType TemplateTypeInstantiator::Instantiate(QualType T) const {
// If T is not a dependent type, there is nothing to do.