| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
PiperOrigin-RevId: 593814844
Change-Id: If1967814b2b9273061b928bfee102faae1fad263
|
|
|
|
|
| |
PiperOrigin-RevId: 593780380
Change-Id: Id80217c63dd76bafbcfb79a7ee10807f1b771cb2
|
|
|
|
|
|
|
| |
& some tests.
PiperOrigin-RevId: 592918704
Change-Id: Iacef0e069c012a04960211c032454244822f9634
|
|
|
|
|
| |
PiperOrigin-RevId: 592864147
Change-Id: I83179b0225aa446ae0b57b46b604af14f1fa14df
|
|
|
|
|
| |
PiperOrigin-RevId: 592664369
Change-Id: I7aa7b045c2b3c0f25cff7b82eb9d9cc13e9fc49f
|
|
|
|
|
| |
PiperOrigin-RevId: 592653487
Change-Id: Iddd2f484807cb02dd2ee8bba26c22d196be02c88
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux kernel's rt_sigprocmask correctly handles an unaligned user address[1].
The original issue was for qemu-user, which seems long irrelevant.
Tested locally on an AArch64 CPU and qemu-aarch64-static.
The alignment operation actually serves another purpose: when addr resides in
the last 7 bytes of a page (unaligned), check only the current page and not the
next. Update the comment.
[1]:
kernel/signal.c `SYSCALL_DEFINE4(rt_sigprocmask`
arch/arm64/include/asm/uaccess.h:raw_copy_from_user
arch/arm64/lib/copy_template.S "alignment handled by the hardware"
PiperOrigin-RevId: 592618320
Change-Id: Ifbd05aba42f46e36e710cca940570213036b3ce0
|
|
|
|
|
|
|
|
|
| |
We currently have a workaround for MSVC, which has constexpr pointer arithmetic bugs. The bug seems to still exist and the existing code for non-MSVC compilers doesn't build.
This alternative constexpr constructor avoids pointer arithmetic and seems to be working for all, including MSVC.
PiperOrigin-RevId: 592586957
Change-Id: Ic585693c3a7abaab5fbbc0954b8ee924994f8dbf
|
|
|
|
|
|
|
| |
benchmarks.
PiperOrigin-RevId: 592483250
Change-Id: I55fa9982c4dbc723b30957cb31da95251e368707
|
|
|
|
|
| |
PiperOrigin-RevId: 592337948
Change-Id: I373943b8daf28781e063b302fc916ca5644e8fe1
|
|
|
|
|
| |
PiperOrigin-RevId: 592301543
Change-Id: I97e4df805c7313896228430a50a7f991127f3e30
|
|
|
|
|
| |
PiperOrigin-RevId: 592272653
Change-Id: I895c5786555227bdc88ab0a4cce8cf5ba65222a1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The added test exposes a false TSan race report in
EnableInvariantDebugging/EnableDebugLog related to SynchEvent reuse.
We ignore most of the stuff that happens inside of the Mutex code,
but not for the code inside of EnableInvariantDebugging/EnableDebugLog.
So these can cause occasional false reports on SynchEvent bankruptcy.
Also ignore accesses in EnableInvariantDebugging/EnableDebugLog.
PiperOrigin-RevId: 592226791
Change-Id: I066edb1ef5661ba6cf86a195f91a9d5328b93d10
|
|
|
|
|
|
|
| |
same element.
PiperOrigin-RevId: 591987002
Change-Id: Ic1ed2063aeb95a6e814eefcbed024e1a5a1d8d2f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, `absl::Condition` incorrectly used the same (non-`const`)
pointer-to-method type when wrapping both `const` and non-`const` methods.
Unfortunately, this is undefined behavior according to `[expr.reinterpret.cast]`
in the C++ standard:
> The effect of calling a function through a pointer to a function type that is
> not the same as the type used in the definition of the function is undefined.
This fixes the UB.
PiperOrigin-RevId: 591981682
Change-Id: Iaca955346699417232383d3a1800ea9b82ea5761
|
|
|
|
|
| |
PiperOrigin-RevId: 591928115
Change-Id: I55de0886d3ce2d58cc1c94a15ce0f3eefc5eeaaf
|
|
|
|
|
| |
PiperOrigin-RevId: 591894838
Change-Id: Ib3fe72d255f49320e2728c210ba1faabc81e0ef8
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are in some sense correct (begin()/end() can be null for empty spans), but
don't capture the critical contract that begin() is only null when end() is.
This leads to foreach loops over spans being considered unsafe.
Long-term we may want to express such constraints somehow, but for now giving
these pointers unknown nullability is the best we can do.
PiperOrigin-RevId: 591191038
Change-Id: I1f02e068a445c0ca5996a9212477b64393ef4161
|
|
|
|
|
| |
PiperOrigin-RevId: 591161019
Change-Id: Iae2477a24819e20288fbb83b4a343031af71f1bb
|
|
|
|
|
| |
PiperOrigin-RevId: 591015112
Change-Id: I3e654433f0b0a4ea02ee10e0894e70738e730782
|
|
|
|
|
| |
PiperOrigin-RevId: 590669848
Change-Id: Ibc703b0fbedede86ddaa9682049b7dcc2250fbfb
|
|
|
|
|
|
|
|
| |
These methods will only be defined if they're defined for `T`. Additionally,
we add jitter to the output to discourage people relying on the output format.
PiperOrigin-RevId: 590598988
Change-Id: I4e7173b5f0c66fd3a1cdd3392944e20b8a26641f
|
|
|
|
|
| |
PiperOrigin-RevId: 590337123
Change-Id: Ib98bbb5a5dadbce5e891567038e016f4da2efc0b
|
|
|
|
|
|
|
|
|
| |
It is not used at the moment. Usage is planned to be submitted separately.
Useful for faster iterating over all slots in the internal functions.
PiperOrigin-RevId: 590300049
Change-Id: I081f33113268761db868771d29796d94c24e4e7a
|
|
|
|
|
|
|
| |
These used to be independent implementations. Now that they are aliases, maintaining tests doesn't make sense anymore.
PiperOrigin-RevId: 589947915
Change-Id: I555496e3467d56a75468b180383482eee2e8f198
|
|
|
|
|
|
|
|
|
|
|
| |
Abseil does not support C++11 anymore: https://github.com/google/oss-policies-info/blob/b842c39db88e6569dfe2cf98be434b03507cb503/foundational-cxx-support-matrix.md
NOTE: This is a breaking change because `std::integer_sequence<T>` requires `std::is_integral_v<T>`, but `absl::integer_sequence<T>` does not.
Unit tests will be deleted in a follow-up.
PiperOrigin-RevId: 589908215
Change-Id: I57a81e4451840304d5fba60bef286e81e024af9c
|
|
|
|
|
| |
PiperOrigin-RevId: 589842893
Change-Id: I9657761d1f71c665582406f278c6605f6d382f6d
|
|
|
|
|
| |
PiperOrigin-RevId: 588893303
Change-Id: I3f9278f2f7f0bc4b8903a87cb4a740daf7349755
|
|
|
|
|
|
|
|
|
| |
Details:
- In case the table entirely fits into a single group size (`capacity <= Group::kWidth`), the order of elements is not important.
- For growing upto Group::kWidth we rotate control bytes and slots deterministically (using memcpy).
- We also avoid second find_first_non_full right after resize for small growing.
PiperOrigin-RevId: 588825966
Change-Id: I09bd7fd489e3868dcf56c36b436805d08dae7ab5
|
|
|
|
|
|
|
|
| |
Reduces final binary size by avoiding stream I/O and all its associated
overhead.
PiperOrigin-RevId: 588789394
Change-Id: Ib8653db77aee0dae45e44f4ac72fe7dd87aa2eba
|
|
|
|
|
| |
PiperOrigin-RevId: 588530709
Change-Id: Iee28c7693a4802f11e13728e1c28febee8c8576f
|
|
|
|
|
|
|
| |
This works around a Clang bug, https://github.com/llvm/llvm-project/issues/25168
PiperOrigin-RevId: 588491254
Change-Id: Ia59afae4df45474d6025a2ab1ca487b381c9ee66
|
|
|
|
|
|
|
| |
Chromium requires no global destructors.
PiperOrigin-RevId: 588466793
Change-Id: Icd255d9fb37667b4f5ce4b2552b70fa53cbf6ecf
|
|
|
|
|
|
|
|
|
|
| |
absl_log.h is supposed to be a mirror of log.h that only uses ABSL_
prefixed macros. This change adds ABSL_VLOG_IS_ON to absl_vlog_is_on.h
and uses it in the implementation of VLOG. VLOG_IS_ON is then only
exported though vlog_is_on.h.
PiperOrigin-RevId: 588435577
Change-Id: Ifa9193afa0b782194b64447f4fedfaf24b72c95a
|
|
|
|
|
| |
PiperOrigin-RevId: 588403935
Change-Id: I6a3af3c044b887ec65b19390d316cfb3ccdcc853
|
|
|
|
|
|
|
| |
This converts to UTF-8 regardless of locale.
PiperOrigin-RevId: 588186076
Change-Id: I2c9598279b413d460e13ad65da2ba421c0b40b83
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 588121665
Change-Id: Id057772e426aefe2fe7b2f1e94fd405b97167fed
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
These are methods for configurable verbose logging
PiperOrigin-RevId: 588059727
Change-Id: Ib3703edd2493050a5da8b30e88b21adc643b1f7f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The corresponding `std` types were removed before C++20 was finalized:
https://wg21.link/P1959R0.
They are unused. The language mechanisms and recommendations changed since they
were originally proposed. In particular:
* An explicitly defaulted `operator==` is defined in terms of memberwise
`operator==` rather than sibling `operator<=>`.
* An `operator!=` can be implicitly added to an overload set in terms of
`operator==` rather than `operator<=>`.
* A class which has equality but not ordering defined should provide
`operator==` rather than `operator<=>`.
PiperOrigin-RevId: 587834267
Change-Id: I2c2513c13f3485b9edc6a345dca4a577d8e65167
|
|
|
|
|
|
|
|
|
| |
without SSE)
Closes #1575
PiperOrigin-RevId: 586009018
Change-Id: Icc34c1201268303dde96bfbb067506b861754b3a
|
|
|
|
|
| |
PiperOrigin-RevId: 585892739
Change-Id: I30490dac5826bff2a33d9872f71154d360f9cc0d
|
|
|
|
|
| |
PiperOrigin-RevId: 585691325
Change-Id: Icd18dc0294dfd1e22f9878b628d5e5898fcc8185
|
|
|
|
|
| |
PiperOrigin-RevId: 584675181
Change-Id: I78c9a29055327c84f1e78b8440221439839a041c
|
|
|
|
|
|
|
| |
This reduces produced binary size and can trigger even more optimizations in the future.
PiperOrigin-RevId: 584136517
Change-Id: I3854833799f88f28b755ec53132925f0c3d468ab
|
|
|
|
|
|
|
| |
- libc++ throws errors when filesystem is included when disabled
PiperOrigin-RevId: 583474609
Change-Id: I205edc5c508f12b84244912f9acc47308a8ca540
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is somewhat tricky to implement because path equality is not
straightforward. See
https://github.com/abseil/abseil-cpp/pull/1560#issuecomment-1799983471
for discussion.
This re-lands 3bd86026c93da5a40006fd53403dff9d5f5e30e3 with a fix
for iOS 13 unavailability of std::filesystem::path.
Roll-forward of 524ebb7ea91d2955dc4c68c7e6fd2bed620621b5.
Closes #655
Closes #1560
PiperOrigin-RevId: 583365100
Change-Id: Id49735c49d123e0cd6a620a2b5b5a12d94129f94
|
|
|
|
|
| |
PiperOrigin-RevId: 583235586
Change-Id: Ia472b8d6530fd829fed1c07558e152975d9b24ac
|
|
|
|
|
|
|
| |
'path' is unavailable: introduced in iOS 13.0
PiperOrigin-RevId: 583036562
Change-Id: I5aea530d03c3317896c3c15bcf7cb5f9d8bc466a
|