diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-22 06:50:37 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-22 06:50:37 +0000 |
commit | 068360e16fa4504a6fb80affebae5c5713629a96 (patch) | |
tree | 73965a02401f27ee14a26f869428000beed5cd59 | |
parent | c6fa4450b827d1e3674494fc9659eae006a86b49 (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.h | 44 | ||||
-rw-r--r-- | include/clang/AST/TypeNodes.def | 1 | ||||
-rw-r--r-- | include/clang/Frontend/PCHBitCodes.h | 4 | ||||
-rw-r--r-- | lib/AST/ASTContext.cpp | 4 | ||||
-rw-r--r-- | lib/AST/Type.cpp | 3 | ||||
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 1 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenTypes.cpp | 1 | ||||
-rw-r--r-- | lib/Frontend/PCHReader.cpp | 6 | ||||
-rw-r--r-- | lib/Frontend/PCHWriter.cpp | 8 | ||||
-rw-r--r-- | lib/Sema/SemaTemplateInstantiate.cpp | 8 |
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. |