- 27 Feb, 2023 3 commits
-
-
PiperOrigin-RevId: 512697257 Change-Id: I828ac7a4ada482d60beba767ef9da6e2c0077c33
Gennadiy Rozental committed -
PiperOrigin-RevId: 512664112 Change-Id: I344fd425f52081c0662d7cd0ffa2eefd98fd18fe
Abseil Team committed -
PiperOrigin-RevId: 512622121 Change-Id: If90aaf7939062bd475253c372d9d7950c98c7150
Derek Mauro committed
-
- 24 Feb, 2023 2 commits
-
-
PiperOrigin-RevId: 512155216 Change-Id: Ie66d29bd48ba8523f5fb7f835f721d9aec637eba
Abseil Team committed -
Abseil defines `ABSL_INTERNAL_HAS_RTTI` by: ``` !defined(__GNUC__) || defined(__GXX_RTTI) ``` This predicate correctly decides rtti for GNU platforms. This predicate is always true for non-GNU platforms. It is not true that rtti is always enabled for non-GNU platforms. For example, when building with `cl.exe` and disabling rtti with `\GR-`, this clause is true. This leads to errors in Windows builds that disable rtti. This default behavior is not decidably correct, but the default behavior shouldn't change. It is better to guess that rtti is on, because if rtti is actually off, compilation will fail, and no programs will be harmed. This change updates the non-default behavior to include a check for rtti on Windows platforms. This change preserves the default behavior. PiperOrigin-RevId: 512085922 Change-Id: I1add0b9b8ca2de5d1313c8aed5ba2019632ab68a
Abseil Team committed
-
- 23 Feb, 2023 6 commits
-
-
In C++20, this happens by default, but in C++17, it's left uninitialized if no logs are sent and StartCapturingLogs is never called. The destructor then makes an attempt to access it, which is both unsafe and not very useful while it is uninitialized. Also add a test that expects the appropriate CHECK fail when StartCapturingLogs is not called. PiperOrigin-RevId: 511865440 Change-Id: Ie23ff3f901e926761d5f487e10d33c21c3bd43d3
Abseil Team committed -
Since Abseil requires CMake >= 3.10, we can remove some workarounds. PiperOrigin-RevId: 511856584 Change-Id: I0385fa87b51147b69df7e2dd18b317cf6cde83c2
Abseil Team committed -
BM_DropDeletes 73.4µs ± 0% 68.9µs ± 1% -6.22% (p=0.008 n=5+5) PiperOrigin-RevId: 511813266 Change-Id: Id28cece454d583e2dfe060e27cfc4720f987f009
Connal de Souza committed -
PiperOrigin-RevId: 511696041 Change-Id: I77a87c8721f64e0d9e9a70e08a7127312488ff21
Copybara-Service committed -
PiperOrigin-RevId: 511695308 Change-Id: I502cdc75e993582eaca5cd91ed068238936a9640
Copybara-Service committed -
Add CalculateBase64EscapeLen variations for the 3 base64 escaping methods (Base64Escape, WebSafeBase64Escape, WebSafeBase64EscapeWithPadding). Also update CalculateBase64EscapedLen() documentation (it references outdated Base64Escape API), and reference it from WebSafeBase64Escape (to match Base64Escape). PiperOrigin-RevId: 511647760 Change-Id: I7dee18645c2a779c0762bc71da75a4684ec2493f
Abseil Team committed
-
- 22 Feb, 2023 4 commits
-
-
PiperOrigin-RevId: 511539869 Change-Id: I32d5e91537b078691988e7e6d3244c682eb8d7d2
Copybara-Service committed -
PiperOrigin-RevId: 511536497 Change-Id: If70a1c72ef5f7cbb4a80100c4edff459373a5d55
Abseil Team committed -
PiperOrigin-RevId: 511499093 Change-Id: I9ea2bbc38cbe8bd9dae937626d8faac41c010b38
Copybara-Service committed -
We no longer support C++11 as per the Google C++ support documentation: we support C++14 and up, so we can remove these workarounds.
Rose committed
-
- 21 Feb, 2023 6 commits
-
-
PiperOrigin-RevId: 511271203 Change-Id: I1ed352e06265b705b62d401a50b4699d01f7f1d7
Copybara-Service committed -
PiperOrigin-RevId: 511270860 Change-Id: Ib7de8c72505bf141d450f950074a27f9f4f1613c
Copybara-Service committed -
Refactor swisstable iterator debug messages code. The motivations are (a) distinguish between the "likely erased" and "could have rehashed" cases when generations are enabled, (b) suggest running under ASan when generations aren't enabled and doing so would narrow down the possible error cases, and (c) make ABSL_INTERNAL_ASSERT_IS_FULL not be a macro. PiperOrigin-RevId: 511255275 Change-Id: I5a44a813cd310837d0bd0209d2187b100be201e7
Evan Brown committed -
Both e_shentsize and e_shstrndx are uint16, so the product elf_header.e_shentsize * elf_header.e_shstrndx can overflow the promoted type int (MAX_UINT16 * MAX_UINT16 > MAX_INT), which is undefined behavior. Not sure if it can affect any real cases or not, though. Cast e_shentsize to loff_t instead of e_shoff. This makes both multiplication and addition to use loff_t type. PiperOrigin-RevId: 511254775 Change-Id: I39c493bfb539cca6742aae807c50718d31e7c001
Abseil Team committed -
Apple's clang fork has the missing commit now, and we can safely use the above codepath.
Rose committed -
We support GCC 7 and up, so we can remove this.
Rose committed
-
- 18 Feb, 2023 2 commits
-
-
The `_dll` variable contains the target name. The code was trying to use `_NAME` when handling ABSL_PROPAGATE_CXX_STD. Probably a cut&paste error from the other places where we handle that option. PiperOrigin-RevId: 510551097 Change-Id: I006435978333dd7a72a300503389a7bf48fb6d0d
Abseil Team committed -
PiperOrigin-RevId: 510549728 Change-Id: I4447197b56dc76aaf4dd4e78671de247af2a91e8
Copybara-Service committed
-
- 17 Feb, 2023 3 commits
-
-
PiperOrigin-RevId: 510518832 Change-Id: I086c8f2e34312e2b0384b3c67b9c04814d41ddf0
Derek Mauro committed -
These make the changed constructors match closer to the other ones that are default.
Rose committed -
monotonic clocks on Linux when the implementation uses futexes After this change, when synchronization methods that wait are passed an absl::Duration to limit the wait time, these methods will wait for that interval, even if the system clock is changed (subject to any limitations with how CLOCK_MONOTONIC keeps track of time). In other words, an observer measuring the time with a stop watch will now see the correct interval, even if the system clock is changed. Previously, the duration was added to the current time, and methods would wait until that time was reached on the possibly changed realtime system clock. The behavior of the synchronization methods that take an absl::Time is unchanged. These methods always wait until the absolute point in time is reached and respect changes to the system clock. In other words, an observer will always see the timeout occur when a wall clock reaches that time, even if the clock is manipulated externally. Note: ABSL_PREDICT_FALSE was removed from the error case in Futex as timeouts are handled by this case, and timeouts are part of normal operation. PiperOrigin-RevId: 510405347 Change-Id: I0b3ea390de97014cfa353079ae2e0c1c637aca69
Derek Mauro committed
-
- 16 Feb, 2023 4 commits
-
-
std::chrono methods used by std::condition_variable. A followup change will add an implemention of synchronization_internal::Waiter that can use std:mutex/std::condition_variable to implement the per-thread semaphore that absl::Mutex waits on. This implementation may at some point become the default on platforms such as Windows where there doesn't seem to be an easy way of supporting real absolute timeouts. In this case we can defer to their standard library to implement correct support. PiperOrigin-RevId: 510204786 Change-Id: Icf4d695013fd060abbd53dae23e71ea36f731565
Derek Mauro committed -
nullptr instead of 0 and nothing instead of void for function arguments is preferred.
Rose committed -
This also helps a lot with dealing with conversions and data structure creation under the hood.
Rose committed -
Change to checking for use_count() >/== 1. PiperOrigin-RevId: 510125744 Change-Id: I572cca18c3f827f5d3eefb2ec19a1a014c0090ae
Abseil Team committed
-
- 15 Feb, 2023 2 commits
-
-
Milad Fa committed
-
instead of absl::ToUnixNanos(absl::Now()); PiperOrigin-RevId: 509829866 Change-Id: Ib34362762304ad6eb7980a1227d717069b84f656
Derek Mauro committed
-
- 14 Feb, 2023 4 commits
-
-
Supporting _m_prefetchw() (officially part of 3DNOW) across various compilers and platforms turns out to be difficult. This change removes the explicit _m_prefetchw call aimed at MSVC compilers given that it causes issues in clang / chromium compilations. PiperOrigin-RevId: 509632497 Change-Id: Ib1b6b2cf667cbc1af5ed6651cd9aa0294a9265b6
Martijn Vels committed -
Make default-constructed swisstable iterators use EmptyGroup() for ctrl_ so that we can distinguish between end() iterators and default-constructed iterators in debug mode. PiperOrigin-RevId: 509606271 Change-Id: I77b68590b3904a4cf7809b75d814d74cb89603b6
Evan Brown committed -
PiperOrigin-RevId: 509581648 Change-Id: Ia60053f1172e0e64569e9555524812fc4788e24f
Copybara-Service committed -
https://bugs.llvm.org/show_bug.cgi?id=38289 has been addressed since 2019. We just have to check to see if the clang being used to compile with is any version before major version 9.
Rose committed
-
- 13 Feb, 2023 3 commits
-
-
PiperOrigin-RevId: 509299527 Change-Id: I2f9a801faf87f968f1625711a67d38a528f0740c
Copybara-Service committed -
The test was getting tripped by EXPECT_DEATH_IF_SUPPORTED keeping a literal copy of the test statement. PiperOrigin-RevId: 509299343 Change-Id: I63da29d844cc630d750535fd4bb13a2895d32541
Abseil Team committed -
PiperOrigin-RevId: 509236105 Change-Id: I635f521aff106875f06bb93c332d3e437d0ad409
Abseil Team committed
-
- 10 Feb, 2023 1 commit
-
-
On Linux Kernels >= 5.4 MSan reports a false positive when accessing thread local storage data from loaded libraries. This was reported on Chromium (which on some build configurations uses absl as a dynamic library). More info here: crbug.com/1414573. PiperOrigin-RevId: 508645053 Change-Id: I5d5a97e1ee7230cc23f3934a4ec5594b883918b4
Abseil Team committed
-