Author: Dmitri Gribenko Date: 2020-01-14T18:56:29+01:00 New Revision: 2948ec5ca98f8593584f2117bc92fe8d75f6f098
URL: https://github.com/llvm/llvm-project/commit/2948ec5ca98f8593584f2117bc92fe8d75f6f098 DIFF: https://github.com/llvm/llvm-project/commit/2948ec5ca98f8593584f2117bc92fe8d75f6f098.diff LOG: Removed PointerUnion3 and PointerUnion4 aliases in favor of the variadic template Added: Modified: clang/include/clang/AST/Decl.h clang/include/clang/AST/DeclCXX.h clang/include/clang/AST/DeclTemplate.h clang/include/clang/AST/ExprObjC.h clang/include/clang/AST/TemplateName.h clang/lib/AST/ASTContext.cpp clang/tools/libclang/CXCursor.h clang/unittests/CodeGen/IRMatchers.h llvm/include/llvm/ADT/PointerUnion.h llvm/include/llvm/Support/SourceMgr.h llvm/lib/Transforms/IPO/LowerTypeTests.cpp llvm/tools/llvm-pdbutil/InputFile.h llvm/unittests/ADT/PointerUnionTest.cpp Removed: ################################################################################ diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h index 623f47b31bb4..43c6c7b85db4 100644 --- a/clang/include/clang/AST/Decl.h +++ b/clang/include/clang/AST/Decl.h @@ -1859,10 +1859,10 @@ class FunctionDecl : public DeclaratorDecl, /// FunctionTemplateSpecializationInfo, which contains information about /// the template being specialized and the template arguments involved in /// that specialization. - llvm::PointerUnion4<FunctionTemplateDecl *, - MemberSpecializationInfo *, - FunctionTemplateSpecializationInfo *, - DependentFunctionTemplateSpecializationInfo *> + llvm::PointerUnion<FunctionTemplateDecl *, + MemberSpecializationInfo *, + FunctionTemplateSpecializationInfo *, + DependentFunctionTemplateSpecializationInfo *> TemplateOrSpecialization; /// Provides source/type location info for the declaration name embedded in diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h index 73b4fb94a494..b716ea453a5a 100644 --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/include/clang/AST/DeclCXX.h @@ -2125,8 +2125,8 @@ class CXXCtorInitializer final { /// Either the base class name/delegating constructor type (stored as /// a TypeSourceInfo*), an normal field (FieldDecl), or an anonymous field /// (IndirectFieldDecl*) being initialized. - llvm::PointerUnion3<TypeSourceInfo *, FieldDecl *, IndirectFieldDecl *> - Initializee; + llvm::PointerUnion<TypeSourceInfo *, FieldDecl *, IndirectFieldDecl *> + Initializee; /// The source location for the field name or, for a base initializer /// pack expansion, the location of the ellipsis. diff --git a/clang/include/clang/AST/DeclTemplate.h b/clang/include/clang/AST/DeclTemplate.h index 8b2c271fbf25..23905d12c8b2 100755 --- a/clang/include/clang/AST/DeclTemplate.h +++ b/clang/include/clang/AST/DeclTemplate.h @@ -57,8 +57,8 @@ class VarTemplatePartialSpecializationDecl; /// Stores a template parameter of any kind. using TemplateParameter = - llvm::PointerUnion3<TemplateTypeParmDecl *, NonTypeTemplateParmDecl *, - TemplateTemplateParmDecl *>; + llvm::PointerUnion<TemplateTypeParmDecl *, NonTypeTemplateParmDecl *, + TemplateTemplateParmDecl *>; NamedDecl *getAsNamedDecl(TemplateParameter P); @@ -309,7 +309,7 @@ class DefaultArgStorage { static_assert(sizeof(Chain) == sizeof(void *) * 2, "non-pointer argument type?"); - llvm::PointerUnion3<ArgType, ParmDecl*, Chain*> ValueOrInherited; + llvm::PointerUnion<ArgType, ParmDecl*, Chain*> ValueOrInherited; static ParmDecl *getParmOwningDefaultArg(ParmDecl *Parm) { const DefaultArgStorage &Storage = Parm->getDefaultArgStorage(); diff --git a/clang/include/clang/AST/ExprObjC.h b/clang/include/clang/AST/ExprObjC.h index dbb2b2ff7099..d76b3a26b1f9 100644 --- a/clang/include/clang/AST/ExprObjC.h +++ b/clang/include/clang/AST/ExprObjC.h @@ -642,7 +642,7 @@ class ObjCPropertyRefExpr : public Expr { /// the location of the 'super' keyword. When it's an interface, /// this is that interface. SourceLocation ReceiverLoc; - llvm::PointerUnion3<Stmt *, const Type *, ObjCInterfaceDecl *> Receiver; + llvm::PointerUnion<Stmt *, const Type *, ObjCInterfaceDecl *> Receiver; public: ObjCPropertyRefExpr(ObjCPropertyDecl *PD, QualType t, diff --git a/clang/include/clang/AST/TemplateName.h b/clang/include/clang/AST/TemplateName.h index e99f12121167..cbbcbf6af8ab 100644 --- a/clang/include/clang/AST/TemplateName.h +++ b/clang/include/clang/AST/TemplateName.h @@ -190,8 +190,8 @@ class SubstTemplateTemplateParmPackStorage /// only be understood in the context of class TemplateName { using StorageType = - llvm::PointerUnion4<TemplateDecl *, UncommonTemplateNameStorage *, - QualifiedTemplateName *, DependentTemplateName *>; + llvm::PointerUnion<TemplateDecl *, UncommonTemplateNameStorage *, + QualifiedTemplateName *, DependentTemplateName *>; StorageType Storage; diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 481affafc871..26e76d450424 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -924,15 +924,15 @@ class ASTContext::ParentMap { /// only storing a unique pointer to them. using ParentMapPointers = llvm::DenseMap< const void *, - llvm::PointerUnion4<const Decl *, const Stmt *, - ast_type_traits::DynTypedNode *, ParentVector *>>; + llvm::PointerUnion<const Decl *, const Stmt *, + ast_type_traits::DynTypedNode *, ParentVector *>>; /// Parent map for nodes without pointer identity. We store a full /// DynTypedNode for all keys. using ParentMapOtherNodes = llvm::DenseMap< ast_type_traits::DynTypedNode, - llvm::PointerUnion4<const Decl *, const Stmt *, - ast_type_traits::DynTypedNode *, ParentVector *>>; + llvm::PointerUnion<const Decl *, const Stmt *, + ast_type_traits::DynTypedNode *, ParentVector *>>; ParentMapPointers PointerParents; ParentMapOtherNodes OtherParents; diff --git a/clang/tools/libclang/CXCursor.h b/clang/tools/libclang/CXCursor.h index d17381ba0aca..78e597b2bbea 100644 --- a/clang/tools/libclang/CXCursor.h +++ b/clang/tools/libclang/CXCursor.h @@ -228,9 +228,9 @@ CXCursor MakeCursorOverloadedDeclRef(TemplateName Template, CXTranslationUnit TU); /// Internal storage for an overloaded declaration reference cursor; -typedef llvm::PointerUnion3<const OverloadExpr *, const Decl *, - OverloadedTemplateStorage *> - OverloadedDeclRefStorage; +typedef llvm::PointerUnion<const OverloadExpr *, const Decl *, + OverloadedTemplateStorage *> + OverloadedDeclRefStorage; /// Unpack an overloaded declaration reference into an expression, /// declaration, or template name along with the source location. diff --git a/clang/unittests/CodeGen/IRMatchers.h b/clang/unittests/CodeGen/IRMatchers.h index 25bd1d5aa956..47e420498036 100644 --- a/clang/unittests/CodeGen/IRMatchers.h +++ b/clang/unittests/CodeGen/IRMatchers.h @@ -58,7 +58,7 @@ class MatcherContext { /// the query also keeps the entity number in that list. /// class Query { - PointerUnion3<const Value *, const Metadata *, const Type *> Entity; + PointerUnion<const Value *, const Metadata *, const Type *> Entity; unsigned OperandNo; public: diff --git a/llvm/include/llvm/ADT/PointerUnion.h b/llvm/include/llvm/ADT/PointerUnion.h index 2ad96c52751d..40b7b000da40 100644 --- a/llvm/include/llvm/ADT/PointerUnion.h +++ b/llvm/include/llvm/ADT/PointerUnion.h @@ -272,16 +272,6 @@ struct PointerLikeTypeTraits<PointerUnion<PTs...>> { PointerUnion<PTs...>::Val)>::NumLowBitsAvailable; }; -/// A pointer union of three pointer types. See documentation for PointerUnion -/// for usage. -template <typename PT1, typename PT2, typename PT3> -using PointerUnion3 = PointerUnion<PT1, PT2, PT3>; - -/// A pointer union of four pointer types. See documentation for PointerUnion -/// for usage. -template <typename PT1, typename PT2, typename PT3, typename PT4> -using PointerUnion4 = PointerUnion<PT1, PT2, PT3, PT4>; - // Teach DenseMap how to use PointerUnions as keys. template <typename ...PTs> struct DenseMapInfo<PointerUnion<PTs...>> { using Union = PointerUnion<PTs...>; diff --git a/llvm/include/llvm/Support/SourceMgr.h b/llvm/include/llvm/Support/SourceMgr.h index aa6026c23d07..1b005519e5d4 100644 --- a/llvm/include/llvm/Support/SourceMgr.h +++ b/llvm/include/llvm/Support/SourceMgr.h @@ -61,10 +61,10 @@ class SourceMgr { /// into relatively small files (often smaller than 2^8 or 2^16 bytes), /// we select the offset vector element type dynamically based on the /// size of Buffer. - using VariableSizeOffsets = PointerUnion4<std::vector<uint8_t> *, - std::vector<uint16_t> *, - std::vector<uint32_t> *, - std::vector<uint64_t> *>; + using VariableSizeOffsets = PointerUnion<std::vector<uint8_t> *, + std::vector<uint16_t> *, + std::vector<uint32_t> *, + std::vector<uint64_t> *>; /// Vector of offsets into Buffer at which there are line-endings /// (lazily populated). Once populated, the '\n' that marks the end of diff --git a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp index c3c498e38f2f..fa664966faf7 100644 --- a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp +++ b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp @@ -1811,7 +1811,7 @@ bool LowerTypeTestsModule::lower() { // reference them. This is used to partition the set of type identifiers in // the module into disjoint sets. using GlobalClassesTy = EquivalenceClasses< - PointerUnion3<GlobalTypeMember *, Metadata *, ICallBranchFunnel *>>; + PointerUnion<GlobalTypeMember *, Metadata *, ICallBranchFunnel *>>; GlobalClassesTy GlobalClasses; // Verify the type metadata and build a few data structures to let us diff --git a/llvm/tools/llvm-pdbutil/InputFile.h b/llvm/tools/llvm-pdbutil/InputFile.h index f25390c971d0..a5d2897f5600 100644 --- a/llvm/tools/llvm-pdbutil/InputFile.h +++ b/llvm/tools/llvm-pdbutil/InputFile.h @@ -43,7 +43,7 @@ class InputFile { std::unique_ptr<NativeSession> PdbSession; object::OwningBinary<object::Binary> CoffObject; std::unique_ptr<MemoryBuffer> UnknownFile; - PointerUnion3<PDBFile *, object::COFFObjectFile *, MemoryBuffer *> PdbOrObj; + PointerUnion<PDBFile *, object::COFFObjectFile *, MemoryBuffer *> PdbOrObj; using TypeCollectionPtr = std::unique_ptr<codeview::LazyRandomTypeCollection>; diff --git a/llvm/unittests/ADT/PointerUnionTest.cpp b/llvm/unittests/ADT/PointerUnionTest.cpp index 0a88114ede85..3c709baf3858 100644 --- a/llvm/unittests/ADT/PointerUnionTest.cpp +++ b/llvm/unittests/ADT/PointerUnionTest.cpp @@ -13,8 +13,8 @@ using namespace llvm; namespace { typedef PointerUnion<int *, float *> PU; -typedef PointerUnion3<int *, float *, long long *> PU3; -typedef PointerUnion4<int *, float *, long long *, double *> PU4; +typedef PointerUnion<int *, float *, long long *> PU3; +typedef PointerUnion<int *, float *, long long *, double *> PU4; struct PointerUnionTest : public testing::Test { float f; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits