[clang] 2948ec5 - Removed PointerUnion3 and PointerUnion4 aliases in favor of the variadic template
Dmitri Gribenko via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 14 10:03:10 PST 2020
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;
More information about the cfe-commits
mailing list