[cfe-commits] [libcxx] r171167 - /libcxx/trunk/src/hash.cpp
Howard Hinnant
hhinnant at apple.com
Thu Dec 27 12:04:37 PST 2012
On Dec 27, 2012, at 2:33 PM, David Blaikie <dblaikie at gmail.com> wrote:
> On Thu, Dec 27, 2012 at 10:59 AM, Howard Hinnant <hhinnant at apple.com> wrote:
>> Author: hhinnant
>> Date: Thu Dec 27 12:59:05 2012
>> New Revision: 171167
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=171167&view=rev
>> Log:
>> Saleem Abdulrasool: Silence warning and reduce unnecessary code in hash.cpp.
>>
>> Modified:
>> libcxx/trunk/src/hash.cpp
>>
>> Modified: libcxx/trunk/src/hash.cpp
>> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/hash.cpp?rev=171167&r1=171166&r2=171167&view=diff
>> ==============================================================================
>> --- libcxx/trunk/src/hash.cpp (original)
>> +++ libcxx/trunk/src/hash.cpp Thu Dec 27 12:59:05 2012
>> @@ -10,6 +10,10 @@
>> #include "__hash_table"
>> #include "algorithm"
>> #include "stdexcept"
>> +#include "type_traits"
>> +
>> +#pragma clang diagnostic push
>
> Did you mean to pop this at some point? (otherwise I'm not sure why
> you'd push it, though I may not be entirely understanding how these
> push/pop things work - maybe there's some other reason to use them)
I don't entirely understand the push/pop thing either. I would've been careful to pop it in a header. For a source I just didn't care enough to scroll down and write it.
Howard
>
>> +#pragma clang diagnostic ignored "-Wtautological-constant-out-of-range-compare"
>>
>> _LIBCPP_BEGIN_NAMESPACE_STD
>>
>> @@ -144,21 +148,23 @@
>> // are fewer potential primes to search, and fewer potential primes to divide
>> // against.
>>
>> +template <size_t _Sz = sizeof(size_t)>
>> inline _LIBCPP_INLINE_VISIBILITY
>> -void
>> -__check_for_overflow(size_t N, integral_constant<size_t, 32>)
>> +typename enable_if<_Sz == 4, void>::type
>> +__check_for_overflow(size_t N)
>> {
>> -#ifndef _LIBCPP_NO_EXCEPTIONS
>> +#ifndef _LIBCPP_NO_EXCEPTIONS
>> if (N > 0xFFFFFFFB)
>> throw overflow_error("__next_prime overflow");
>> #endif
>> }
>>
>> +template <size_t _Sz = sizeof(size_t)>
>> inline _LIBCPP_INLINE_VISIBILITY
>> -void
>> -__check_for_overflow(size_t N, integral_constant<size_t, 64>)
>> +typename enable_if<_Sz == 8, void>::type
>> +__check_for_overflow(size_t N)
>> {
>> -#ifndef _LIBCPP_NO_EXCEPTIONS
>> +#ifndef _LIBCPP_NO_EXCEPTIONS
>> if (N > 0xFFFFFFFFFFFFFFC5ull)
>> throw overflow_error("__next_prime overflow");
>> #endif
>> @@ -174,8 +180,7 @@
>> return *std::lower_bound(small_primes, small_primes + N, n);
>> // Else n > largest small_primes
>> // Check for overflow
>> - __check_for_overflow(n, integral_constant<size_t,
>> - sizeof(n) * __CHAR_BIT__>());
>> + __check_for_overflow(n);
>> // Start searching list of potential primes: L * k0 + indices[in]
>> const size_t M = sizeof(indices) / sizeof(indices[0]);
>> // Select first potential prime >= n
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list