mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-28 03:25:23 +00:00
Add range insert method for DenseSet and define DenseMapInfo for chars.
Patch by Kevin Fan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68239 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -51,6 +51,17 @@ struct DenseMapInfo<T*> {
|
|||||||
static bool isPod() { return true; }
|
static bool isPod() { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Provide DenseMapInfo for chars.
|
||||||
|
template<> struct DenseMapInfo<char> {
|
||||||
|
static inline char getEmptyKey() { return ~0; }
|
||||||
|
static inline char getTombstoneKey() { return ~0 - 1; }
|
||||||
|
static unsigned getHashValue(const char& Val) { return Val * 37; }
|
||||||
|
static bool isPod() { return true; }
|
||||||
|
static bool isEqual(const char &LHS, const char &RHS) {
|
||||||
|
return LHS == RHS;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Provide DenseMapInfo for unsigned ints.
|
// Provide DenseMapInfo for unsigned ints.
|
||||||
template<> struct DenseMapInfo<unsigned> {
|
template<> struct DenseMapInfo<unsigned> {
|
||||||
static inline unsigned getEmptyKey() { return ~0; }
|
static inline unsigned getEmptyKey() { return ~0; }
|
||||||
|
@@ -90,6 +90,13 @@ public:
|
|||||||
std::pair<iterator, bool> insert(const ValueT &V) {
|
std::pair<iterator, bool> insert(const ValueT &V) {
|
||||||
return TheMap.insert(std::make_pair(V, 0));
|
return TheMap.insert(std::make_pair(V, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Range insertion of values.
|
||||||
|
template<typename InputIt>
|
||||||
|
void insert(InputIt I, InputIt E) {
|
||||||
|
for (; I != E; ++I)
|
||||||
|
insert(*I);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
Reference in New Issue
Block a user