diff options
Diffstat (limited to 'contrib/llvm/lib/Support/FoldingSet.cpp')
| -rw-r--r-- | contrib/llvm/lib/Support/FoldingSet.cpp | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/contrib/llvm/lib/Support/FoldingSet.cpp b/contrib/llvm/lib/Support/FoldingSet.cpp index 463511408759..b8538ffe1f9f 100644 --- a/contrib/llvm/lib/Support/FoldingSet.cpp +++ b/contrib/llvm/lib/Support/FoldingSet.cpp @@ -51,8 +51,8 @@ bool FoldingSetNodeIDRef::operator<(FoldingSetNodeIDRef RHS) const {  ///  void FoldingSetNodeID::AddPointer(const void *Ptr) {    // Note: this adds pointers to the hash using sizes and endianness that -  // depend on the host.  It doesn't matter however, because hashing on -  // pointer values in inherently unstable.  Nothing  should depend on the  +  // depend on the host. It doesn't matter, however, because hashing on +  // pointer values is inherently unstable. Nothing should depend on the    // ordering of nodes in the folding set.    Bits.append(reinterpret_cast<unsigned *>(&Ptr),                reinterpret_cast<unsigned *>(&Ptr+1)); @@ -101,6 +101,8 @@ void FoldingSetNodeID::AddString(StringRef String) {      // Otherwise do it the hard way.      // To be compatible with above bulk transfer, we need to take endianness      // into account. +    static_assert(sys::IsBigEndianHost || sys::IsLittleEndianHost, +                  "Unexpected host endianness");      if (sys::IsBigEndianHost) {        for (Pos += 4; Pos <= Size; Pos += 4) {          unsigned V = ((unsigned char)String[Pos - 4] << 24) | @@ -109,8 +111,7 @@ void FoldingSetNodeID::AddString(StringRef String) {                        (unsigned char)String[Pos - 1];          Bits.push_back(V);        } -    } else { -      assert(sys::IsLittleEndianHost && "Unexpected host endianness"); +    } else {  // Little-endian host        for (Pos += 4; Pos <= Size; Pos += 4) {          unsigned V = ((unsigned char)String[Pos - 1] << 24) |                       ((unsigned char)String[Pos - 2] << 16) | @@ -222,6 +223,8 @@ static void **AllocateBuckets(unsigned NumBuckets) {  //===----------------------------------------------------------------------===//  // FoldingSetImpl Implementation +void FoldingSetImpl::anchor() {} +  FoldingSetImpl::FoldingSetImpl(unsigned Log2InitSize) {    assert(5 < Log2InitSize && Log2InitSize < 32 &&           "Initial hash table size out of range");  | 
