danalbert added inline comments.
================ Comment at: include/__hash_table:2141 __n = 2; else if (__n & (__n - 1)) __n = __next_prime(__n); ---------------- mclow.lists wrote: > danalbert wrote: > > With `rehash(0)` this is `0 & (0 - 1)`, which triggers > > unsigned-integer-overflow. > Grumble, grumble. That's not UB, that's just UBSan whining. > On the other hand, this doesn't appear to change any behavior, and shuts > UBSan up. FWIW, this check isn't enabled in ubsan by default. Android uses it for testing and mititgation in a handful of projects because it does catch errors (stagefright was an unsigned overflow issue). It's good to keep the libc++ headers clean of these issues so we're not dictating the compile flags of libc++ users. Repository: rCXX libc++ https://reviews.llvm.org/D40743 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits