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

Reply via email to