From 20cd13f54f2b1a6307016c47330045de13b140e2 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 3 Nov 2008 19:40:18 +0000 Subject: [PATCH] Overload AddInteger on int/long/long long instead of on int/int64_t, to avoid overload ambiguities. This fixes build errors introduced by r58623. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58632 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/FoldingSet.h | 6 ++++-- lib/Support/FoldingSet.cpp | 22 ++++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/include/llvm/ADT/FoldingSet.h b/include/llvm/ADT/FoldingSet.h index dbf10aa63ef..f25697c10d6 100644 --- a/include/llvm/ADT/FoldingSet.h +++ b/include/llvm/ADT/FoldingSet.h @@ -221,8 +221,10 @@ public: void AddPointer(const void *Ptr); void AddInteger(signed I); void AddInteger(unsigned I); - void AddInteger(int64_t I); - void AddInteger(uint64_t I); + void AddInteger(long I); + void AddInteger(unsigned long I); + void AddInteger(long long I); + void AddInteger(unsigned long long I); void AddFloat(float F); void AddDouble(double D); void AddString(const std::string &String); diff --git a/lib/Support/FoldingSet.cpp b/lib/Support/FoldingSet.cpp index 5a96dcd4485..d2b02f240c9 100644 --- a/lib/Support/FoldingSet.cpp +++ b/lib/Support/FoldingSet.cpp @@ -41,13 +41,23 @@ void FoldingSetNodeID::AddInteger(signed I) { void FoldingSetNodeID::AddInteger(unsigned I) { Bits.push_back(I); } -void FoldingSetNodeID::AddInteger(int64_t I) { - AddInteger((uint64_t)I); +void FoldingSetNodeID::AddInteger(long I) { + AddInteger((unsigned long)I); } -void FoldingSetNodeID::AddInteger(uint64_t I) { - Bits.push_back(unsigned(I)); - - // If the integer is small, encode it just as 32-bits. +void FoldingSetNodeID::AddInteger(unsigned long I) { + if (sizeof(long) == sizeof(int)) + AddInteger(unsigned(I)); + else if (sizeof(long) == sizeof(long long)) { + AddInteger((unsigned long long)I); + } else { + assert(0 && "unexpected sizeof(long)"); + } +} +void FoldingSetNodeID::AddInteger(long long I) { + AddInteger((unsigned long long)I); +} +void FoldingSetNodeID::AddInteger(unsigned long long I) { + AddInteger(unsigned(I)); if ((uint64_t)(int)I != I) Bits.push_back(unsigned(I >> 32)); }