aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix //absl/{base,debugging:symbolize} build with MingwAbseil Team2023-02-283-1/+26
| | | | | | | | | | PiperOrigin-RevId: 512974770 Change-Id: If7a8128996d2a73ac566faaa676ddd3858d51af6
* | Eliminate internal ArgvListAction enum.Gennadiy Rozental2023-02-273-78/+12
| | | | | | | | | | PiperOrigin-RevId: 512697257 Change-Id: I828ac7a4ada482d60beba767ef9da6e2c0077c33
* | Move lambda from ExtractInvoker in AnyInvocable to a separate functionAbseil Team2023-02-271-6/+9
| | | | | | | | | | PiperOrigin-RevId: 512664112 Change-Id: I344fd425f52081c0662d7cd0ffa2eefd98fd18fe
* | Remove backfills of some type traits that are now fully supportedDerek Mauro2023-02-273-1046/+30
|/ | | | | PiperOrigin-RevId: 512622121 Change-Id: If90aaf7939062bd475253c372d9d7950c98c7150
* Remove extra space in comment.Abseil Team2023-02-241-1/+1
| | | | | PiperOrigin-RevId: 512155216 Change-Id: Ie66d29bd48ba8523f5fb7f835f721d9aec637eba
* Update the predicate for `ABSL_INTERNAL_HAS_RTTI` for Windows builds.Abseil Team2023-02-241-1/+3
| | | | | | | | | | | | | | | | | | | 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
* Initialize ScopedMockLog.is_triggered_ with false.Abseil Team2023-02-233-1/+9
| | | | | | | | | 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
* cleanup: remove pre-CMake 3.8 workaroundsAbseil Team2023-02-233-49/+5
| | | | | | | Since Abseil requires CMake >= 3.10, we can remove some workarounds. PiperOrigin-RevId: 511856584 Change-Id: I0385fa87b51147b69df7e2dd18b317cf6cde83c2
* Optimize ConvertSpecialToEmptyAndFullToDeleted on ArmConnal de Souza2023-02-231-3/+4
| | | | | | | BM_DropDeletes 73.4µs ± 0% 68.9µs ± 1% -6.22% (p=0.008 n=5+5) PiperOrigin-RevId: 511813266 Change-Id: Id28cece454d583e2dfe060e27cfc4720f987f009
* Merge pull request #1393 from AtariDreams:cppCopybara-Service2023-02-223-3/+3
|\ | | | | | | | | PiperOrigin-RevId: 511696041 Change-Id: I77a87c8721f64e0d9e9a70e08a7127312488ff21
| * Prefer C++ notation over CRose2023-02-163-3/+3
| | | | | | | | nullptr instead of 0 and nothing instead of void for function arguments is preferred.
* | Merge pull request #1402 from AtariDreams:workaroundCopybara-Service2023-02-221-8/+2
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 511695308 Change-Id: I502cdc75e993582eaca5cd91ed068238936a9640
| * | Remove workaround for gcc 5.1Rose2023-02-211-8/+2
| | | | | | | | | | | | We support GCC 7 and up, so we can remove this.
* | | Add CalculateBase64EscapeLen variations for the 3 base64 escaping methods ↵Abseil Team2023-02-222-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | (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
* | | Merge pull request #1403 from AtariDreams:c++11Copybara-Service2023-02-228-40/+15
|\ \ \ | | | | | | | | | | | | | | | | PiperOrigin-RevId: 511539869 Change-Id: I32d5e91537b078691988e7e6d3244c682eb8d7d2
| * | | Resolve TODO: remove C++11 workaroundsRose2023-02-228-31/+9
| | | | | | | | | | | | | | | | 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.
* | | | Fix out of bounds array access when deadlock detector finds exceptionally ↵Abseil Team2023-02-222-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | large cycles. PiperOrigin-RevId: 511536497 Change-Id: If70a1c72ef5f7cbb4a80100c4edff459373a5d55
* | | | Merge pull request #1388 from miladfarca:fix-Read1To3-on-BECopybara-Service2023-02-221-1/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | PiperOrigin-RevId: 511499093 Change-Id: I9ea2bbc38cbe8bd9dae937626d8faac41c010b38
| * | | Fix Read1To3 on big EndianMilad Fa2023-02-151-1/+1
| | | |
* | | | Merge pull request #1394 from AtariDreams:constructorsCopybara-Service2023-02-215-8/+8
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | PiperOrigin-RevId: 511271203 Change-Id: I1ed352e06265b705b62d401a50b4699d01f7f1d7
| * | | | Convert empty constructors to default onesRose2023-02-175-8/+8
| | | | | | | | | | | | | | | | | | | | These make the changed constructors match closer to the other ones that are default.
* | | | | Merge pull request #1401 from AtariDreams:appleCopybara-Service2023-02-211-1/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | PiperOrigin-RevId: 511270860 Change-Id: Ib7de8c72505bf141d450f950074a27f9f4f1613c
| * | | | | Remove check for apple_build_version for hash workaroundRose2023-02-211-1/+1
| | |_|/ / | |/| | | | | | | | | | | | | Apple's clang fork has the missing commit now, and we can safely use the above codepath.
* | | | | Refactor swisstable iterator debug messages code. The motivations are (a) ↵Evan Brown2023-02-212-56/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | absl: fix potential int overflow in ELF readingAbseil Team2023-02-211-0/+10
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | fix(CMake): correct target variable for DLLsAbseil Team2023-02-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge pull request #1390 from AtariDreams:defaultCopybara-Service2023-02-173-6/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | PiperOrigin-RevId: 510549728 Change-Id: I4447197b56dc76aaf4dd4e78671de247af2a91e8
| * | | | Prefer emplace back over push_back where emplace_back is more appropriateRose2023-02-163-6/+6
| | |_|/ | |/| | | | | | | | | | This also helps a lot with dealing with conversions and data structure creation under the hood.
* | | | Update latest Linux container to unbreak KokoroDerek Mauro2023-02-171-2/+2
| |/ / |/| | | | | | | | | | | PiperOrigin-RevId: 510518832 Change-Id: I086c8f2e34312e2b0384b3c67b9c04814d41ddf0
* | | Synchronization: Add support for true relative timeouts usingDerek Mauro2023-02-174-47/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Add KernelTimeout methods that convert the timeout to theDerek Mauro2023-02-163-0/+94
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* / std::shared_ptr<T>::unique() is deprecated in C++17 and removed in C++20.Abseil Team2023-02-161-3/+3
|/ | | | | | | Change to checking for use_count() >/== 1. PiperOrigin-RevId: 510125744 Change-Id: I572cca18c3f827f5d3eefb2ec19a1a014c0090ae
* KernelTimeout optimization: Use absl::GetCurrentTimeNanos()Derek Mauro2023-02-151-3/+3
| | | | | | | instead of absl::ToUnixNanos(absl::Now()); PiperOrigin-RevId: 509829866 Change-Id: Ib34362762304ad6eb7980a1227d717069b84f656
* Remove _m_prefetchw() in favor of supporting only _mm_prefetch() or ↵Martijn Vels2023-02-141-5/+0
| | | | | | | | | __builtin_prefetch() 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
* Make default-constructed swisstable iterators use EmptyGroup() for ctrl_ so ↵Evan Brown2023-02-142-33/+41
| | | | | | | that we can distinguish between end() iterators and default-constructed iterators in debug mode. PiperOrigin-RevId: 509606271 Change-Id: I77b68590b3904a4cf7809b75d814d74cb89603b6
* Merge pull request #1387 from AtariDreams:patch-1Copybara-Service2023-02-142-3/+3
|\ | | | | | | | | PiperOrigin-RevId: 509581648 Change-Id: Ia60053f1172e0e64569e9555524812fc4788e24f
| * Remove Workarounds for Old Clang BugRose2023-02-142-2/+2
|/ | | | | | 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.
* Merge pull request #1381 from trishvl:masterCopybara-Service2023-02-131-2/+4
|\ | | | | | | | | PiperOrigin-RevId: 509299527 Change-Id: I2f9a801faf87f968f1625711a67d38a528f0740c
| * Solving issue with implied SSE when running ARM64ECTrish Lam2023-02-061-2/+2
| |
* | Fix absl/log:stripping_test when ABSL_MIN_LOG_LEVEL is definedAbseil Team2023-02-133-1/+11
| | | | | | | | | | | | | | | | The test was getting tripped by EXPECT_DEATH_IF_SUPPORTED keeping a literal copy of the test statement. PiperOrigin-RevId: 509299343 Change-Id: I63da29d844cc630d750535fd4bb13a2895d32541
* | Fix missing constexpr on GetReferenceableValue overloadAbseil Team2023-02-131-1/+3
| | | | | | | | | | PiperOrigin-RevId: 509236105 Change-Id: I635f521aff106875f06bb93c332d3e437d0ad409
* | Workaround MSan false positive.Abseil Team2023-02-103-0/+8
| | | | | | | | | | | | | | | | | | 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
* | Rewrite KernelTimeout to support both absolute and relative timeoutsDerek Mauro2023-02-096-115/+546
| | | | | | | | | | | | | | | | | | | | | | | | | | | | APIs that take KernelTimeout as a parameter can now query if an absolute or relative timeout was requested. If the underlying API can only use one type of timeout, the code will do a reasonable conversion. The goal is to eventually enable the possibility of using wait times that are based on monotonic clocks that are safe against system clock steps. PiperOrigin-RevId: 508541507 Change-Id: Id08bf13515f3e1bfd78d88393cde98a6fd3ef72c
* | In sanitizer mode, detect when end iterators from different swisstables are ↵Evan Brown2023-02-092-22/+77
| | | | | | | | | | | | | | | | | | compared. We change AssertSameContainer to be after AssertIsValidForComparison calls so that we can have more specific failure messages. PiperOrigin-RevId: 508472485 Change-Id: Iff2f7512086948a4aca7fd403596e8d4fde53b2a
* | Add overrides to other functions which call Waiter::GetWaiterAbseil Team2023-02-083-9/+26
| | | | | | | | | | PiperOrigin-RevId: 508124592 Change-Id: Ib183e6e241c81b2760e7f849f8af8e7e2c30ea42
* | Change implementation of OnlyLiteralZero to only fail if the second overload ↵Abseil Team2023-02-081-60/+59
| | | | | | | | | | | | | | is chosen, not in overload resolution. PiperOrigin-RevId: 508031321 Change-Id: I6981371fbc6498047babe3468f3343090f8bda47
* | Don't assume that AVX implies PCLMULQDQ when using LLVM on Windows.Saran Tunyasuvunakool2023-02-071-1/+1
| | | | | | | | | | PiperOrigin-RevId: 507790741 Change-Id: I347357f9a2d698510f29b7d1b065ef73f9289292
* | Fix a discrepancy between absl::Hash and absl::HashOf for some negative ↵Abseil Team2023-02-062-3/+15
|/ | | | | | | signed integral types and improve the performance of absl::Hash. PiperOrigin-RevId: 507598042 Change-Id: I96a7bd6b9c360f435f216b2671ae84d9768a46e8
* `PrefetchToLocalCacheForWrite` should use `__builtin_prefetch(<addr>, 1, 3)` ↵Abseil Team2023-02-031-2/+2
| | | | | | | not `__builtin_prefetch<addr>, 1, 0)` PiperOrigin-RevId: 507015724 Change-Id: I99f44fe819c27e6dcc0bb7b36f1a37015c6f1987
* Add ABSL_ATTRIBUTE_LIFETIME_BOUND to absl::StatusOr::emplace()Laramie Leavitt2023-02-031-2/+3
| | | | | PiperOrigin-RevId: 506944023 Change-Id: I04ff13dcec89c57ba03707f5698c4198434216b6