Changes imported from Abseil "staging" branch:
- 06abebb2bdb201c572da209fc7f781d6bd774d6b Documentation fixes for `absl::optional`. by Abseil Team <absl-team@google.com> - 42adc4c4daade2e070dc337e94d8851a1fd4bead Rolling back the previous change because `__has_warning`... by Xiaoyi Zhang <zhangxy@google.com> - 02a42cbaa97d82ee7942bc498538359185d75087 Remove literal UTF8 strings in abseil code to avoid file ... by Jon Cohen <cohenjon@google.com> GitOrigin-RevId: 06abebb2bdb201c572da209fc7f781d6bd774d6b Change-Id: I4f4659c2e7ca6fc585b6c089bcf20ca61aced75d
This commit is contained in:
parent
8a401394b8
commit
0ec11bad6f
7 changed files with 27 additions and 39 deletions
|
|
@ -53,24 +53,7 @@
|
|||
// it will likely be a reference type).
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ABSL_INTERNAL_HAS_WARNING()
|
||||
//
|
||||
// If the compiler supports the `__has_warning` extension for detecting
|
||||
// warnings, then this macro is defined to be `__has_warning`.
|
||||
//
|
||||
// If the compiler does not support `__has_warning`, invocations expand to 0.
|
||||
//
|
||||
// For clang's documentation of `__has_warning`, see
|
||||
// https://clang.llvm.org/docs/LanguageExtensions.html#has-warning
|
||||
#if defined(__has_warning)
|
||||
#define ABSL_INTERNAL_HAS_WARNING __has_warning
|
||||
#else // Otherwise, be optimistic and assume the warning is not enabled.
|
||||
#define ABSL_INTERNAL_HAS_WARNING(warning) 0
|
||||
#endif // defined(__has_warning)
|
||||
|
||||
// If the compiler supports inline variables and does not warn when used...
|
||||
#if defined(__cpp_inline_variables) && \
|
||||
!ABSL_INTERNAL_HAS_WARNING("-Wc++98-c++11-c++14-compat")
|
||||
#ifdef __cpp_inline_variables
|
||||
|
||||
// Clang's -Wmissing-variable-declarations option erroneously warned that
|
||||
// inline constexpr objects need to be pre-declared. This has now been fixed,
|
||||
|
|
@ -83,21 +66,19 @@
|
|||
// identity_t is used here so that the const and name are in the
|
||||
// appropriate place for pointer types, reference types, function pointer
|
||||
// types, etc..
|
||||
#if defined(__clang__) && \
|
||||
ABSL_INTERNAL_HAS_WARNING("-Wmissing-variable-declarations")
|
||||
#if defined(__clang__)
|
||||
#define ABSL_INTERNAL_EXTERN_DECL(type, name) \
|
||||
extern const ::absl::internal::identity_t<type> name;
|
||||
#else // Otherwise, just define the macro to do nothing.
|
||||
#define ABSL_INTERNAL_EXTERN_DECL(type, name)
|
||||
#endif // defined(__clang__) &&
|
||||
// ABSL_INTERNAL_HAS_WARNING("-Wmissing-variable-declarations")
|
||||
#endif // defined(__clang__)
|
||||
|
||||
// See above comment at top of file for details.
|
||||
#define ABSL_INTERNAL_INLINE_CONSTEXPR(type, name, init) \
|
||||
ABSL_INTERNAL_EXTERN_DECL(type, name) \
|
||||
inline constexpr ::absl::internal::identity_t<type> name = init
|
||||
|
||||
#else // Otherwise, we need to emulate inline variables...
|
||||
#else
|
||||
|
||||
// See above comment at top of file for details.
|
||||
//
|
||||
|
|
@ -121,7 +102,6 @@
|
|||
static_assert(sizeof(void (*)(decltype(name))) != 0, \
|
||||
"Silence unused variable warnings.")
|
||||
|
||||
#endif // defined(__cpp_inline_variables) &&
|
||||
// !ABSL_INTERNAL_HAS_WARNING("-Wc++98-c++11-c++14-compat")
|
||||
#endif // __cpp_inline_variables
|
||||
|
||||
#endif // ABSL_BASE_INTERNAL_INLINE_VARIABLE_EMULATION_H_
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ inline void UnalignedStore64(void *p, uint64_t v) {
|
|||
// and 32-bit values (not 64-bit); older versions either raise a fatal signal,
|
||||
// do an unaligned read and rotate the words around a bit, or do the reads very
|
||||
// slowly (trip through kernel mode). There's no simple #define that says just
|
||||
// “ARMv7 or higher”, so we have to filter away all ARMv5 and ARMv6
|
||||
// "ARMv7 or higher", so we have to filter away all ARMv5 and ARMv6
|
||||
// sub-architectures. Newer gcc (>= 4.6) set an __ARM_FEATURE_ALIGNED #define,
|
||||
// so in time, maybe we can move on to that.
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue