From 502efe6d7841bff82b1aeef5500491fe9a48c635 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Wed, 25 Sep 2019 11:29:22 -0700 Subject: Export of internal Abseil changes -- 8e04df6fcbd062e5eaf179a6ec9b0a26f8aa8a39 by Abseil Team : Use a floating point type for the example usage of absl::uniform_real_distribution. PiperOrigin-RevId: 271167776 -- 5f8f1dfea50bc16a9d9af3e50c4636500a938b29 by Abseil Team : the llvm wasm backend does not support this data symbol in text section, so remove it from the test. PiperOrigin-RevId: 271138100 -- 2874542cb212962ac3093fd78fd5e1eb85c126c0 by Xiaoyi Zhang : Work around MSVC 2019 compiler bug related to constexpr in optional_test. The change in optional_test is necessary to avoid another bug on MSVC complaining about accessing invalid member of union, and also makes the test more reasonale by checking the value of a non-static member. Filed a bug against MSVC https://developercommunity.visualstudio.com/content/problem/743998/internal-compiler-error-related-to-constexpr-and-u.html. PiperOrigin-RevId: 271129805 -- 3a5d56f0c3362aabf68938fb95c4e2d3eca59538 by Abseil Team : Improve precision of absl::GetCurrentTimeNanos() by adjusting cycle time sooner. PiperOrigin-RevId: 271007945 -- 1e044a6dec7c0ca150fff1aee52dbdb16aa43ed7 by Abseil Team : Internal change. PiperOrigin-RevId: 270962690 GitOrigin-RevId: 8e04df6fcbd062e5eaf179a6ec9b0a26f8aa8a39 Change-Id: Icb05423a7e93ebdae16baadd59a60b75b5cfa249 --- absl/types/internal/optional.h | 4 ++-- absl/types/optional_test.cc | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'absl/types') diff --git a/absl/types/internal/optional.h b/absl/types/internal/optional.h index 8acbda20d559..d41ccc75f6f6 100644 --- a/absl/types/internal/optional.h +++ b/absl/types/internal/optional.h @@ -84,8 +84,8 @@ class optional_data_dtor_base { bool engaged_; // Data storage union { - dummy_type dummy_; T data_; + dummy_type dummy_; }; void destruct() noexcept { @@ -119,8 +119,8 @@ class optional_data_dtor_base { bool engaged_; // Data storage union { - dummy_type dummy_; T data_; + dummy_type dummy_; }; void destruct() noexcept { engaged_ = false; } diff --git a/absl/types/optional_test.cc b/absl/types/optional_test.cc index e005affb4ce6..35efa8635077 100644 --- a/absl/types/optional_test.cc +++ b/absl/types/optional_test.cc @@ -944,7 +944,7 @@ TEST(optionalTest, Swap) { template struct DeletedOpAddr { - constexpr static const int value = v; + int value = v; constexpr DeletedOpAddr() = default; constexpr const DeletedOpAddr* operator&() const = delete; // NOLINT DeletedOpAddr* operator&() = delete; // NOLINT @@ -954,9 +954,9 @@ struct DeletedOpAddr { // to document the fact that the current implementation of absl::optional // expects such usecases to be malformed and not compile. TEST(optionalTest, OperatorAddr) { - constexpr const int v = -1; + constexpr int v = -1; { // constexpr - constexpr const absl::optional> opt(absl::in_place_t{}); + constexpr absl::optional> opt(absl::in_place_t{}); static_assert(opt.has_value(), ""); // static_assert(opt->value == v, ""); static_assert((*opt).value == v, ""); -- cgit 1.4.1