nikic added inline comments.
================ Comment at: llvm/include/llvm/ADT/ArrayRef.h:595-600 + if (RHS.data() == getEmptyKey().data()) + return LHS.data() == getEmptyKey().data(); + if (RHS.data() == getTombstoneKey().data()) + return LHS.data() == getTombstoneKey().data(); + return LHS == RHS; + } ---------------- lattner wrote: > craig.topper wrote: > > lattner wrote: > > > I'm pretty sure this method can just be "return LHS == RHS;" The > > > tombstone/empty comparisons should work without special cases. > > Doesn't operator== on ArrayRef compare the elements of the arrays? So > > wouldn't that dereference the invalid pointers used by tombstone/empty? > Yes, implemented in terms of std::equal. However, both of these cases have > zero elements, so the "pointer" is never dereferenced. As the length is zero, wouldn't the empty key, the tombstone key and an empty ArrayRef all be considered equal, as the data pointer is never compared? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103491/new/ https://reviews.llvm.org/D103491 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits