Summary:
Because the way the #if was written, the dummy crc32c_hw function accidentally
ended in folly namespace instead of folly::details as expected. Fix this.
Reviewed By: yfeldblum
Differential Revision:
D5826187
fbshipit-source-id:
ba0f2207a00bc21eda7a727f3f1025e1106d55f9
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
namespace folly {
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
namespace folly {
-namespace crc32_detail {
#if FOLLY_SSE_PREREQ(4, 2)
#if FOLLY_SSE_PREREQ(4, 2)
+namespace crc32_detail {
+
#define CRCtriplet(crc, buf, offset) \
crc##0 = _mm_crc32_u64(crc##0, *(buf##0 + offset)); \
crc##1 = _mm_crc32_u64(crc##1, *(buf##1 + offset)); \
#define CRCtriplet(crc, buf, offset) \
crc##0 = _mm_crc32_u64(crc##0, *(buf##0 + offset)); \
crc##1 = _mm_crc32_u64(crc##1, *(buf##1 + offset)); \
} // namespace crc32c_detail
} // namespace crc32c_detail
/* Compute CRC-32C using the Intel hardware instruction. */
FOLLY_TARGET_ATTRIBUTE("sse4.2")
uint32_t crc32c_hw(const uint8_t* buf, size_t len, uint32_t crc) {
/* Compute CRC-32C using the Intel hardware instruction. */
FOLLY_TARGET_ATTRIBUTE("sse4.2")
uint32_t crc32c_hw(const uint8_t* buf, size_t len, uint32_t crc) {
-uint32_t
-crc32c_hw(const uint8_t* data, size_t nbytes, uint32_t startingChecksum) {
+uint32_t crc32c_hw(const uint8_t* buf, size_t len, uint32_t crc) {
throw std::runtime_error("crc32_hw is not implemented on this platform");
}
#endif
throw std::runtime_error("crc32_hw is not implemented on this platform");
}
#endif
+
+} // namespace detail
+} // namespace folly