Export of internal Abseil changes.

--
5f1ab09522226336830d9ea6ef7276d37f536ac5 by Abseil Team <absl-team@google.com>:

Clarify the documentation of ABSL_MUST_USE_RESULT.

PiperOrigin-RevId: 221663609

--
af4c8359a20d56369fd1dce318220cf3be03ca66 by Greg Falcon <gfalcon@google.com>:

Internal change

PiperOrigin-RevId: 221538448

--
487cd09bd1942bf607080deeae38fee6ce66f294 by Eric Fiselier <ericwf@google.com>:

Work around emscripten bugs and missing features in absl/time:time_test.

The emscripten toolchain has a couple of issues that cause time_test
to fail. Specifically:

1) emscripten doesn't support signals.
2) The javascript implementation of strftime/strptime use different expansions
of '%c' that mean it doesn't round-trip.

PiperOrigin-RevId: 221523701

--
5823652e6a200b97b07334bc47128dfac40e20fc by Xiaoyi Zhang <zhangxy@google.com>:

Fix MSVC compiler warning by explicitly casting to char.
Currently our MSVC build breaks with the following error:
raw_hash_set.h(406): warning C4309: 'argument': truncation of constant value

PiperOrigin-RevId: 221492585

--
c5806358320711a5efbe5c523df13e14ab53a17d by Greg Falcon <gfalcon@google.com>:

Replace calls to getpagesize() with the more portable sysconf(_SC_PAGESIZE); the latter is in POSIX 1.0 and is called out in the Linux `getpagesize` man page as a more portable spelling.

PiperOrigin-RevId: 221492471

--
19ffe82851072229bb7ce73f754ffe4c18e8c575 by Abseil Team <absl-team@google.com>:

Fix -Wundef error in absl/hash/internal/hash.h.

PiperOrigin-RevId: 221444120

--
b30f3d0a848563b6e4ec33f3dc085831dfabb748 by Jon Cohen <cohenjon@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 221339736
GitOrigin-RevId: 5f1ab09522226336830d9ea6ef7276d37f536ac5
Change-Id: I96223d522d98bf6616dea88eb047c2d536eeddd0
This commit is contained in:
Abseil Team 2018-11-15 11:55:00 -08:00 committed by Jon Cohen
parent 7b46e1d31a
commit a06c4a1d90
10 changed files with 47 additions and 24 deletions

View file

@ -303,13 +303,13 @@ H hash_tuple(H hash_state, const Tuple& t, absl::index_sequence<Is...>) {
// AbslHashValue for hashing tuples
template <typename H, typename... Ts>
#if _MSC_VER
#if defined(_MSC_VER)
// This SFINAE gets MSVC confused under some conditions. Let's just disable it
// for now.
H
#else
#else // _MSC_VER
typename std::enable_if<absl::conjunction<is_hashable<Ts>...>::value, H>::type
#endif
#endif // _MSC_VER
AbslHashValue(H hash_state, const std::tuple<Ts...>& t) {
return hash_internal::hash_tuple(std::move(hash_state), t,
absl::make_index_sequence<sizeof...(Ts)>());
@ -545,7 +545,7 @@ hash_range_or_bytes(H hash_state, const T* data, size_t size) {
// In MSVC we can't probe std::hash or stdext::hash because it triggers a
// static_assert instead of failing substitution.
#if defined(_MSC_VER)
#undef ABSL_HASH_INTERNAL_CAN_POISON_
#define ABSL_HASH_INTERNAL_CAN_POISON_ 0
#else // _MSC_VER
#define ABSL_HASH_INTERNAL_CAN_POISON_ 1
#endif // _MSC_VER
@ -553,6 +553,8 @@ hash_range_or_bytes(H hash_state, const T* data, size_t size) {
#if defined(ABSL_INTERNAL_LEGACY_HASH_NAMESPACE) && \
ABSL_HASH_INTERNAL_CAN_POISON_
#define ABSL_HASH_INTERNAL_SUPPORT_LEGACY_HASH_ 1
#else
#define ABSL_HASH_INTERNAL_SUPPORT_LEGACY_HASH_ 0
#endif
enum class InvokeHashTag {