| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
PiperOrigin-RevId: 591928115
Change-Id: I55de0886d3ce2d58cc1c94a15ce0f3eefc5eeaaf
|
|
|
|
|
| |
PiperOrigin-RevId: 590669848
Change-Id: Ibc703b0fbedede86ddaa9682049b7dcc2250fbfb
|
|
|
|
|
| |
PiperOrigin-RevId: 589842893
Change-Id: I9657761d1f71c665582406f278c6605f6d382f6d
|
|
|
|
|
| |
PiperOrigin-RevId: 588893303
Change-Id: I3f9278f2f7f0bc4b8903a87cb4a740daf7349755
|
|
|
|
|
|
|
|
|
|
|
| |
and the QCHECK flavors of these.
In particular, if ABSL_MIN_LOG_LEVEL exceeds kFatal, these should, upon failure, terminate the program without logging anything. The lack of logging should be visible to the optimizer so that it can strip string literals and stringified variable names from the object file.
Making some edge cases work under Clang required rewriting NormalizeLogSeverity to help make constraints on its return value more obvious to the optimizer.
PiperOrigin-RevId: 588181755
Change-Id: I95db3bae39f8dadb52a307ca3b80775db23de766
|
|
|
|
|
|
|
|
|
|
|
|
| |
types when they are available.
This makes them interchangeable in contexts known to be compiled as C++20.
This also makes `absl::` ordering types compatible with `<=>`, allowing to
unconditionally use `absl::` spelling for types but conditionally use `<=>`
when available.
PiperOrigin-RevId: 588085408
Change-Id: I1aa5247f0e31acbb838ee76829b7a13c74b0a94f
|
|
|
|
|
|
|
|
|
| |
without SSE)
Closes #1575
PiperOrigin-RevId: 586009018
Change-Id: Icc34c1201268303dde96bfbb067506b861754b3a
|
|
|
|
|
| |
PiperOrigin-RevId: 582426024
Change-Id: Ic8650de4faff9688f4cb5529c1df9bc752878b5a
|
|
|
|
|
|
|
|
|
| |
absl::NoDestructor<T> wraps an existing type and is used for defining a
static type that does not need to be destructed upon program exit. Instead,
such an object survives during program exit, and can be safely accessed at
any time after construction.
PiperOrigin-RevId: 580566259
Change-Id: I2cbb4cd9f6b50b98a793acd2ef0a4befd541f17f
|
|
|
|
|
| |
PiperOrigin-RevId: 579852413
Change-Id: I1eddd70a4bee974e3a5109109ddfc4b4fd8f421e
|
|
|
|
|
| |
PiperOrigin-RevId: 576884571
Change-Id: I7bfe68e5aedd8563f8e6dbdb5d7cc66e9af22567
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1553
OpenBSD will remove its generic syscall(2) interface, so setting the ABSL_HAVE_SYSCALL_WRITE define will result in a linking failure soon.
Make direct use of the write(2) syscall instead. OpenBSD's libc does not do any buffering for write, so there is no change of behavior.
A [variant of this patch][1] has been in use since early this year in OpenBSD's ports. There's no need to set ABSL_LOW_LEVEL_WRITE_SUPPORTED since that's already done a few lines up.
[1]: https://github.com/openbsd/ports/commit/5f9e56cd982c1f1fa5af867e56355091e1817786
Merge 0dcc88a3cdab513c598587d85423135e85cec330 into b841db22f8d1d9cdbaacecf2e7c87ce270f8d96f
Merging this change closes #1553
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1553 from botovq:openbsd-syscall 0dcc88a3cdab513c598587d85423135e85cec330
PiperOrigin-RevId: 576552197
Change-Id: I13466703ddc9d50edf87da5d0c291aad642af49a
|
|
|
|
|
|
|
|
| |
Some use cases of SpinLock need to verify that it is configured for
non-cooperative scheduling.
PiperOrigin-RevId: 575278400
Change-Id: Ic49f57a989a3f7f67e346a1ec545f4cd5b94f849
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we use "r" constraint to pass prefetched address.
This forces the compiler to actually put it into a register.
As the result some uses look as:
16bfb7c: 48 01 cf add %rcx,%rdi
16bfb7f: 0f 0d 0f prefetchw (%rdi)
--
16bfccf: 48 83 c1 60 add $0x60,%rcx
16bfcd3: 0f 0d 09 prefetchw (%rcx)
Use "m" constraint instead. It's more relaxed and requires
to just materialize the address in some form using whatever
addressing modes the target supports (e.g. x86 off(base, index, scale)).
With the change the same code becomes:
16bfb7c: 0f 0d 0c 39 prefetchw (%rcx,%rdi,1)
--
16bfccf: 0f 0d 49 60 prefetchw 0x60(%rcx)
PiperOrigin-RevId: 574723975
Change-Id: Id0c8645f8c702d1842685343901da321f6513156
|
|
|
|
|
| |
PiperOrigin-RevId: 572575394
Change-Id: Ic1c5ac2423b1634e50c43bad6daa14e82a8f3e2c
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The layering_check feature ensures that rules that include a header
explicitly depend on a rule that exports that header. Compiler support
is required, and currently only Clang 16+ supports diagnoses
layering_check failures.
The parse_headers feature ensures headers are self-contained by
compiling them with -fsyntax-only on supported compilers.
PiperOrigin-RevId: 572350144
Change-Id: I37297f761566d686d9dd58d318979d688b7e36d1
|
|
|
|
|
| |
PiperOrigin-RevId: 571929102
Change-Id: I8fb907d047a4ff3bb42e7c7f99454fa687b8f1c9
|
|
|
|
|
|
|
| |
We test for `ABSL_INTERNAL_HAS_RTTI` in `absl::container_internal::TypeName` before calling `typeid`.
PiperOrigin-RevId: 570101013
Change-Id: I1f2f9b2f475a6beae50d0b88718b17b296311155
|
|
|
|
|
| |
PiperOrigin-RevId: 568845530
Change-Id: I8987053041423f1e8b122372f63b0a84e05eb594
|
|
|
|
|
| |
PiperOrigin-RevId: 568665135
Change-Id: I42ec9bc6cfe923777f7b60ea032c7b64428493c9
|
|
|
|
|
| |
PiperOrigin-RevId: 568652465
Change-Id: I9f72a11cb514eaf694dae589a19dc139891e7af2
|
|
|
|
|
| |
PiperOrigin-RevId: 567102456
Change-Id: I0750284c36850adbabc5ec0b4a2635aa8a967e53
|
|
|
|
|
|
|
|
|
|
|
| |
flavors of these.
In particular, if ABSL_MIN_LOG_LEVEL exceeds kFatal, these should, upon failure, terminate the program without logging anything. The lack of logging should be visible to the optimizer so that it can strip string literals and stringified variable names from the object file.
Making some edge cases work under Clang required rewriting NormalizeLogSeverity to help make constraints on its return value more obvious to the optimizer.
PiperOrigin-RevId: 565792699
Change-Id: Ibb6a47d4956191bbbd0297e04492cddc354578e2
|
|
|
|
|
| |
PiperOrigin-RevId: 564779671
Change-Id: I8cae825a533a00ff1983b48782486d5d00dae69a
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/abseil/abseil-cpp/issues/1518#issuecomment-1709098904
pointed out that the previous untested fix doesn't work because
pthread_getthreadid_np() has a different signature on Darwin.
Follow up to https://github.com/abseil/abseil-cpp/commit/b9707b7d7845f9710ae6d5906827b833fdcc2754
Fixes #1518
PiperOrigin-RevId: 563432451
Change-Id: Id0a9212e9c4413fa520a42934efaed2a06ca5dbc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FreeBSD, NetBSD, and OpenBSD
https://man.freebsd.org/cgi/man.cgi?query=pthread_getthreadid_np
https://man.netbsd.org/_lwp_self.2
https://man.openbsd.org/getthrid.2
This fixes a build break caused by
https://github.com/abseil/abseil-cpp/commit/88cc63ef739d83277b492e881be72e9069fcb1fe
Fixes #1518
PiperOrigin-RevId: 563200172
Change-Id: Ifd1b65c84e3631075248bc2e01b8f047dc72d201
|
|
|
|
|
|
|
| |
Public functions are now available in //absl/base/prefetch.h
PiperOrigin-RevId: 561649346
Change-Id: Ic377ad5f21c9a44ea1f213dec17f5cf97795ebde
|
|
|
|
|
|
|
| |
options.h was already included indirectly from config.h. This CL is just to include what you use.
PiperOrigin-RevId: 561376910
Change-Id: I5b96b2aedc1e02eddc049f5bf0e6faa91799930d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The legacy thread annotations were spellings that were not prefixed
with ABSL_ and caused conflicts with other libraries. These spellings
have been removed by default for a while, but could have been added
back with the temporary compile flag
-DABSL_LEGACY_THREAD_ANNOTATIONS. This change completely removes the
legacy spellings.
If you were relying on the legacy spellings, the fix is
straightforward. Simply add the ABSL_ prefix. For example,
GUARDED_BY() becomes ABSL_GUARDED_BY().
PiperOrigin-RevId: 560874026
Change-Id: Id072e67435472220ea4f43ccbf267028c13feba7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pure functions have no effects except to return a value, and their
return value depends only on the parameters and global
variables. Functions of this kind can be subject to data flow analysis
and might be eliminated. In practice, this means that repeated calls
to the same function with the same arguments may be optimized away and
only evaluated once.
Const functions are similar to pure functions, but may not depend on
global variables at all.
It is an error not to use the result of a function with one of these
attributes, since these functions have no other visible effects.
Since some Abseil functions are tagged with these attributes, this is
potentially a breaking change for code that doesn't use the result of
these functions.
For example, absl::Minutes() is tagged with
ABSL_ATTRIBUTE_CONST_FUNCTION. If, for example, the result of
absl::Minutes(n) is unused, some compilers with issue a warning or
error. If this is the case, it is likely that there is a typo in the
code, or the call can be removed.
PiperOrigin-RevId: 560803581
Change-Id: Icd6f218be2cfb7226f8ab6b2d97cd960c0d3d72f
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1520
Fixes #1519 and removes the burden of manually feature testing all the platforms supported by absl.
Merge 26bc4ee13a93edaeee2a21b5eff3569b806acc91 into 94b37802217a9c9bb182bd99d55096683ef45b2c
Merging this change closes #1520
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1520 from georgthegreat:feature-test-macros 26bc4ee13a93edaeee2a21b5eff3569b806acc91
PiperOrigin-RevId: 558777775
Change-Id: Ie3e1f309761c67fa233a03e42762776cd93c69b4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1509
WASI is similar to emscripten, providing a syscall layer to WebAssembly focused on server side applications. There are some config knobs that are in place to allow building the repo for emscripten which also need to support wasi (as built with LLVM). Aside from that, there are still some features it supports less than escripten, for example related to signals, causing the build to be even more limited for it.
Merge ec9fa081609687035005dfdafd312754f31c3fbb into 861e53c8f075c8c4d67bd4c82217c57239fc97cf
Merging this change closes #1509
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1509 from anuraaga:wasi-sdk-build ec9fa081609687035005dfdafd312754f31c3fbb
PiperOrigin-RevId: 557166498
Change-Id: Ic51149d8b092fd888c9a5c383275257fc8ff4232
|
|
|
|
|
| |
PiperOrigin-RevId: 556914455
Change-Id: Ic0169e1099384eefe285e6d354e448eb5189e397
|
|
|
|
|
|
|
| |
ABSL_HAVE_FEATURE(cxx_rtti)
PiperOrigin-RevId: 555495363
Change-Id: I4f38bbffe1195ebdf26d7ed3bc92bc865dc8dd17
|
|
|
|
|
|
|
|
|
|
| |
`DFATAL` is defined as `FATAL` in debug mode, and as `ERROR`
when `NDEBUG` is defined.
Closes #1279
PiperOrigin-RevId: 553904244
Change-Id: Iaa207ee65b2a39b4b7f5da241208c3d39cd5da0e
|
|
|
|
|
|
|
|
|
|
|
|
| |
Included are additional automated edits by clang-format on import.
Merge d74896699faacc4a1667603e52e72cbdc8006cf6 into 22091f4c0d6626b3ef40446ce3d4ccab19425ca3
Merging this change closes #1500
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1500 from ryandesign:MAP_ANONYMOUS d74896699faacc4a1667603e52e72cbdc8006cf6
PiperOrigin-RevId: 552922776
Change-Id: I96a0395cb5e7156d7c7a889491c5d0b4cf755819
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a vtable
The code is getting the pointer, then constructing it on the next
line. Using reinterpret_cast on this pointer is legal according to
https://clang.llvm.org/docs/ControlFlowIntegrity.html#bad-cast-checking,
but it flags it anyway. The docs say it might be necessary for
`allocate()`-type APIs, and recommends adding them to an ignorelist.
Also note that std::addressof is removed. It is unnecessary since
inlined_data is a char-array.
PiperOrigin-RevId: 550972834
Change-Id: Ib224cec330bb6bcb770296de6c91881f404ef531
|
|
|
|
|
| |
PiperOrigin-RevId: 548709037
Change-Id: I6eb03553299265660aa0abc180ae0f197a416ba4
|
|
|
|
|
| |
PiperOrigin-RevId: 547895328
Change-Id: If5da952604415fa6ed2402052f80add6c4b7dfb3
|
|
|
|
|
| |
PiperOrigin-RevId: 546897533
Change-Id: I3ad12f252c49e4672a64d00d0107111fdc5b6ac8
|
|
|
|
|
|
|
| |
The current spelling is inconsistent with standard casing rules: "nonnull" is a single word, not two.
PiperOrigin-RevId: 546034114
Change-Id: I04e5a204f4a74ebaa76031dd0b0874ca9cfa902c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Xcode 14.3, Apple modified the OS versions which support these
three types to exclude iOS 11 and watchOS 4. Update abseil accordingly.
Those versions of the OS did _not_ actually support the types, and any
binaries which used these types, built with prior Xcode versions,
would've crashed on startup on an actual iOS 11 or watchOS 4 device
due to missing symbols. As of Xcode 14.3, using them is now, correctly,
a build failure.
This change also drops the conditionals for pre-Xcode 12.5, as that is
no longer a supported version.
PiperOrigin-RevId: 546005629
Change-Id: Ib0430307ac2ada4910f07c54cfd6e99db8ca1905
|
|
|
|
|
| |
PiperOrigin-RevId: 544677169
Change-Id: I98874c5c8d1c9a057958b63e2b3c4fdd5daccd39
|
|
|
|
|
| |
PiperOrigin-RevId: 544461113
Change-Id: Iafbd6daf2d03ae18a49ea449315ee7cd6a0e615e
|
|
|
|
|
| |
PiperOrigin-RevId: 544438364
Change-Id: I22d461f2d0aa8638a0e640eebecdc7e5e2b49ea3
|
|
|
|
|
|
|
| |
comparison.
PiperOrigin-RevId: 544197983
Change-Id: I7eb39563e696d6561ad193d4d25b4161eb6419ae
|
|
|
|
|
|
|
| |
It's NOOP without HWASAN.
PiperOrigin-RevId: 543045322
Change-Id: Ibb5f28d316bfc5e8aa51861fd55e50ecb517a9a3
|
|
|
|
|
|
|
|
|
|
|
| |
Reformat Mutex-related files so that incremental formatting changes
don't distract during review of logical changes.
These files are subtle and any unnecessary diffs make reviews harder.
No changes besides running clang-format.
PiperOrigin-RevId: 541981737
Change-Id: I41cccb7a97158c78d17adaff6fe553c2c9c2b9ed
|
|
|
|
|
| |
PiperOrigin-RevId: 541915097
Change-Id: I7ebfbafc36db38b59b30ab5b312cd7e22082a805
|
|
|
|
|
|
|
| |
It no longer strictly writes to stderr, since Emscripten/WebAssembly now use _emscripten_err which might be replaced by something that is not the same as stderr by the host.
PiperOrigin-RevId: 540655336
Change-Id: Icc2a430a0db53a1282ef5558e9f3648db67e972c
|