Changes imported from Abseil "staging" branch:

- 432508bf64998983b3c194d5f164872ce3c2e573 Put visibility tags into absl external build files by Jon Cohen <cohenjon@google.com>
  - 25d59d11e7b833fe632cddb5bf4d76075ae6282b Use ABSL_PREDICT_TRUE instead of *FALSE for the range che... by Jon Cohen <cohenjon@google.com>
  - 8d8a5890a55ddd19aac849748441eeb57c684f10 Better detection for MSVC support on std::optional. by Xiaoyi Zhang <zhangxy@google.com>
  - c1b31e4a97939885c3bbc23ecb093e9619e73ad1 Internal cleanup by Gennadiy Rozental <rogeeff@google.com>
  - 4f56ad20c4eeccc6f5fb21ec6c7191233d34a090 Internal change. by Matt Calabrese <calabrese@google.com>
  - d2a02b52c75c295708170f4d17b7ff442c8d6a97 Fixed a minor typo in the SimpleAtob() function comment. by Abseil Team <absl-team@google.com>
  - 5adbff5c23a45278d06de2ef3a29ea51b0d1269e Internal cleanup by Gennadiy Rozental <rogeeff@google.com>

GitOrigin-RevId: 432508bf64998983b3c194d5f164872ce3c2e573
Change-Id: I32ddd151d3350b96a22e8f1830f19b59374953ad
This commit is contained in:
Abseil Team 2017-10-13 10:21:40 -07:00 committed by jueminyang
parent 1a9ba5e2e5
commit 6de53819a7
13 changed files with 75 additions and 16 deletions

View file

@ -1,7 +0,0 @@
// This is a relaxed JSON format, you can have comments in it.
// This is a list of configuration for the job that does not specify a configuration.
[
{"node": "linux-x86_64"},
{"node": "ubuntu_16.04-x86_64"},
{"node": "darwin-x86_64"}
]

View file

@ -23,6 +23,7 @@ config_setting(
values = { values = {
"compiler": "llvm", "compiler": "llvm",
}, },
visibility = [":__subpackages__"],
) )
# following configs are based on mapping defined in: https://git.io/v5Ijz # following configs are based on mapping defined in: https://git.io/v5Ijz
@ -31,6 +32,7 @@ config_setting(
values = { values = {
"cpu": "darwin", "cpu": "darwin",
}, },
visibility = [":__subpackages__"],
) )
config_setting( config_setting(
@ -38,6 +40,7 @@ config_setting(
values = { values = {
"cpu": "x64_windows", "cpu": "x64_windows",
}, },
visibility = [":__subpackages__"],
) )
config_setting( config_setting(
@ -45,4 +48,5 @@ config_setting(
values = { values = {
"cpu": "ppc", "cpu": "ppc",
}, },
visibility = [":__subpackages__"],
) )

View file

@ -25,8 +25,6 @@ package(default_visibility = ["//visibility:public"])
licenses(["notice"]) # Apache 2.0 licenses(["notice"]) # Apache 2.0
exports_files(["thread_annotations.h"])
cc_library( cc_library(
name = "spinlock_wait", name = "spinlock_wait",
srcs = [ srcs = [
@ -39,6 +37,9 @@ cc_library(
"internal/spinlock_wait.h", "internal/spinlock_wait.h",
], ],
copts = ABSL_DEFAULT_COPTS, copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl/base:__pkg__",
],
deps = [":core_headers"], deps = [":core_headers"],
) )
@ -83,6 +84,9 @@ cc_library(
"internal/malloc_extension_c.h", "internal/malloc_extension_c.h",
], ],
copts = ABSL_DEFAULT_COPTS, copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl:__subpackages__",
],
deps = [ deps = [
":core_headers", ":core_headers",
":dynamic_annotations", ":dynamic_annotations",
@ -108,6 +112,9 @@ cc_library(
textual_hdrs = [ textual_hdrs = [
"internal/malloc_hook_invoke.h", "internal/malloc_hook_invoke.h",
], ],
visibility = [
"//absl:__subpackages__",
],
deps = [ deps = [
":base", ":base",
":config", ":config",
@ -124,6 +131,9 @@ cc_library(
"internal/invoke.h", "internal/invoke.h",
], ],
copts = ABSL_DEFAULT_COPTS, copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl:__subpackages__",
],
) )
cc_library( cc_library(
@ -183,6 +193,9 @@ cc_library(
features = [ features = [
"-use_header_modules", "-use_header_modules",
], ],
visibility = [
"//absl:__subpackages__",
],
deps = [ deps = [
":base", ":base",
":config", ":config",
@ -205,6 +218,7 @@ cc_library(
testonly = 1, testonly = 1,
hdrs = ["internal/exception_testing.h"], hdrs = ["internal/exception_testing.h"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//absl:__subpackages__"],
deps = [ deps = [
":config", ":config",
"@com_google_googletest//:gtest", "@com_google_googletest//:gtest",

View file

@ -372,4 +372,19 @@
#endif #endif
#endif #endif
// For MSVC, `__has_include` is supported in VS 2017 15.3, which is later than
// the support for <optional>, <any>, <string_view>. So we use _MSC_VER to check
// whether we have VS 2017 RTM (when <optional>, <any>, <string_view> is
// implemented) or higher.
// Also, `__cplusplus` is not correctly set by MSVC, so we use `_MSVC_LANG` to
// check the language version.
// TODO(zhangxy): fix tests before enabling aliasing for `std::any`,
// `std::string_view`.
#if defined(_MSC_VER) && _MSC_VER >= 1910 && \
((defined(_MSVC_LANG) && _MSVC_LANG > 201402) || __cplusplus > 201402)
// #define ABSL_HAVE_STD_ANY 1
#define ABSL_HAVE_STD_OPTIONAL 1
// #define ABSL_HAVE_STD_STRING_VIEW 1
#endif
#endif // ABSL_BASE_CONFIG_H_ #endif // ABSL_BASE_CONFIG_H_

View file

@ -112,6 +112,9 @@ cc_library(
srcs = ["internal/test_instance_tracker.cc"], srcs = ["internal/test_instance_tracker.cc"],
hdrs = ["internal/test_instance_tracker.h"], hdrs = ["internal/test_instance_tracker.h"],
copts = ABSL_DEFAULT_COPTS, copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl:__subpackages__",
],
) )
cc_test( cc_test(

View file

@ -103,6 +103,7 @@ cc_test(
size = "small", size = "small",
srcs = ["match_test.cc"], srcs = ["match_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"@com_google_googletest//:gtest_main", "@com_google_googletest//:gtest_main",
@ -117,6 +118,7 @@ cc_test(
"internal/escaping_test_common.inc", "internal/escaping_test_common.inc",
], ],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -130,6 +132,7 @@ cc_test(
size = "small", size = "small",
srcs = ["ascii_test.cc"], srcs = ["ascii_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -145,6 +148,7 @@ cc_test(
"internal/memutil_test.cc", "internal/memutil_test.cc",
], ],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -159,6 +163,7 @@ cc_test(
"internal/utf8_test.cc", "internal/utf8_test.cc",
], ],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":internal", ":internal",
":strings", ":strings",
@ -172,6 +177,7 @@ cc_test(
size = "small", size = "small",
srcs = ["string_view_test.cc"], srcs = ["string_view_test.cc"],
copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG, copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:config", "//absl/base:config",
@ -186,6 +192,7 @@ cc_test(
size = "small", size = "small",
srcs = ["substitute_test.cc"], srcs = ["substitute_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -198,6 +205,7 @@ cc_test(
size = "small", size = "small",
srcs = ["str_replace_test.cc"], srcs = ["str_replace_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"@com_google_googletest//:gtest_main", "@com_google_googletest//:gtest_main",
@ -208,6 +216,7 @@ cc_test(
name = "str_split_test", name = "str_split_test",
srcs = ["str_split_test.cc"], srcs = ["str_split_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -221,6 +230,7 @@ cc_test(
size = "small", size = "small",
srcs = ["internal/ostringstream_test.cc"], srcs = ["internal/ostringstream_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":internal", ":internal",
"@com_google_googletest//:gtest_main", "@com_google_googletest//:gtest_main",
@ -235,6 +245,7 @@ cc_test(
"internal/resize_uninitialized_test.cc", "internal/resize_uninitialized_test.cc",
], ],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
"//absl/base:core_headers", "//absl/base:core_headers",
"//absl/meta:type_traits", "//absl/meta:type_traits",
@ -247,6 +258,7 @@ cc_test(
size = "small", size = "small",
srcs = ["str_join_test.cc"], srcs = ["str_join_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -260,6 +272,7 @@ cc_test(
size = "small", size = "small",
srcs = ["str_cat_test.cc"], srcs = ["str_cat_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base:core_headers", "//absl/base:core_headers",
@ -278,6 +291,7 @@ cc_test(
tags = [ tags = [
"no_test_loonix", "no_test_loonix",
], ],
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"//absl/base", "//absl/base",
@ -291,6 +305,7 @@ cc_test(
size = "small", size = "small",
srcs = ["strip_test.cc"], srcs = ["strip_test.cc"],
copts = ABSL_TEST_COPTS, copts = ABSL_TEST_COPTS,
visibility = ["//visibility:private"],
deps = [ deps = [
":strings", ":strings",
"@com_google_googletest//:gtest_main", "@com_google_googletest//:gtest_main",

View file

@ -25,7 +25,6 @@
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
namespace absl { namespace absl {
namespace strings_internal { namespace strings_internal {

View file

@ -53,7 +53,7 @@ inline bool StrContains(absl::string_view haystack, absl::string_view needle) {
inline bool StartsWith(absl::string_view text, absl::string_view prefix) { inline bool StartsWith(absl::string_view text, absl::string_view prefix) {
return prefix.empty() || return prefix.empty() ||
(text.size() >= prefix.size() && (text.size() >= prefix.size() &&
memcmp(text.data(), prefix.data(), prefix.size()) == 0); memcmp(text.data(), prefix.data(), prefix.size()) == 0);
} }
// EndsWith() // EndsWith()
@ -63,7 +63,8 @@ inline bool EndsWith(absl::string_view text, absl::string_view suffix) {
return suffix.empty() || return suffix.empty() ||
(text.size() >= suffix.size() && (text.size() >= suffix.size() &&
memcmp(text.data() + (text.size() - suffix.size()), suffix.data(), memcmp(text.data() + (text.size() - suffix.size()), suffix.data(),
suffix.size()) == 0); suffix.size()) == 0
);
} }
// StartsWithIgnoreCase() // StartsWithIgnoreCase()

View file

@ -62,9 +62,9 @@ ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* value);
// SimpleAtob() // SimpleAtob()
// //
// Converts the given std::string into into a boolean, returning `true` if // Converts the given std::string into a boolean, returning `true` if successful.
// successful. The following case-insensitive strings are interpreted as boolean // The following case-insensitive strings are interpreted as boolean `true`:
// `true`: "true", "t", "yes", "y", "1". The following case-insensitive strings // "true", "t", "yes", "y", "1". The following case-insensitive strings
// are interpreted as boolean `false`: "false", "f", "no", "n", "0". // are interpreted as boolean `false`: "false", "f", "no", "n", "0".
ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* value); ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* value);

View file

@ -34,6 +34,9 @@ cc_library(
"internal/graphcycles.h", "internal/graphcycles.h",
], ],
copts = ABSL_DEFAULT_COPTS, copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl:__subpackages__",
],
deps = [ deps = [
"//absl/base", "//absl/base",
"//absl/base:core_headers", "//absl/base:core_headers",

View file

@ -57,6 +57,9 @@ cc_library(
], ],
hdrs = ["internal/test_util.h"], hdrs = ["internal/test_util.h"],
copts = ABSL_DEFAULT_COPTS, copts = ABSL_DEFAULT_COPTS,
visibility = [
"//absl/time:__pkg__",
],
deps = [ deps = [
":time", ":time",
"//absl/base", "//absl/base",

View file

@ -270,8 +270,17 @@ TEST(optionalTest, CopyConstructor) {
EXPECT_TRUE(absl::is_trivially_copy_constructible< EXPECT_TRUE(absl::is_trivially_copy_constructible<
absl::optional<const TrivialCopyable>>::value); absl::optional<const TrivialCopyable>>::value);
#endif #endif
// When testing with VS 2017 15.3, there seems to be a bug in MSVC
// std::optional when T is volatile-qualified. So skipping this test.
// Bug report:
// https://connect.microsoft.com/VisualStudio/feedback/details/3142534
#if defined(ABSL_HAVE_STD_OPTIONAL) && defined(_MSC_VER) && _MSC_VER >= 1911
#define ABSL_MSVC_OPTIONAL_VOLATILE_COPY_BUG 1
#endif
#ifndef ABSL_MSVC_OPTIONAL_VOLATILE_COPY_BUG
EXPECT_FALSE(std::is_copy_constructible< EXPECT_FALSE(std::is_copy_constructible<
absl::optional<volatile TrivialCopyable>>::value); absl::optional<volatile TrivialCopyable>>::value);
#endif
} }
} }

View file

@ -378,7 +378,7 @@ class Span {
// //
// Returns a reference to the i'th element of this span. // Returns a reference to the i'th element of this span.
constexpr reference at(size_type i) const { constexpr reference at(size_type i) const {
return ABSL_PREDICT_FALSE(i < size()) return ABSL_PREDICT_TRUE(i < size())
? ptr_[i] ? ptr_[i]
: (base_internal::ThrowStdOutOfRange( : (base_internal::ThrowStdOutOfRange(
"Span::at failed bounds check"), "Span::at failed bounds check"),