diff --git a/llvm/include/llvm/ADT/DenseMap.h b/llvm/include/llvm/ADT/DenseMap.h index ab1bc6356dcb9..0fa911a229c92 100644 --- a/llvm/include/llvm/ADT/DenseMap.h +++ b/llvm/include/llvm/ADT/DenseMap.h @@ -629,8 +629,9 @@ class DenseMapBase : public DebugEpochBase { return TheBucket; } - template BucketT *doFind(const LookupKeyT &Val) { - BucketT *BucketsPtr = getBuckets(); + template + const BucketT *doFind(const LookupKeyT &Val) const { + const BucketT *BucketsPtr = getBuckets(); const unsigned NumBuckets = getNumBuckets(); if (NumBuckets == 0) return nullptr; @@ -639,7 +640,7 @@ class DenseMapBase : public DebugEpochBase { unsigned BucketNo = getHashValue(Val) & (NumBuckets - 1); unsigned ProbeAmt = 1; while (true) { - BucketT *Bucket = BucketsPtr + BucketNo; + const BucketT *Bucket = BucketsPtr + BucketNo; if (LLVM_LIKELY(KeyInfoT::isEqual(Val, Bucket->getFirst()))) return Bucket; if (LLVM_LIKELY(KeyInfoT::isEqual(Bucket->getFirst(), EmptyKey))) @@ -652,9 +653,9 @@ class DenseMapBase : public DebugEpochBase { } } - template - const BucketT *doFind(const LookupKeyT &Val) const { - return const_cast(this)->doFind(Val); // NOLINT + template BucketT *doFind(const LookupKeyT &Val) { + return const_cast( + static_cast(this)->doFind(Val)); } /// LookupBucketFor - Lookup the appropriate bucket for Val, returning it in