summaryrefslogtreecommitdiff
path: root/absl
Commit message (Collapse)AuthorAge
* For Bazel builds, mark some of the low-level tests that are dependentGravatar Derek Mauro2023-05-08
| | | | | | | | | | on timing as flaky. This will run them up to 3 times (in the default configuration) and only consider the test failed if it fails each time. PiperOrigin-RevId: 530348477 Change-Id: Ib77bd8a166828b82a1b49ee5ef2e8321752e51d0
* Add missing dependency on dynamic_annotations to stacktrace, which is needed ↵Gravatar Abseil Team2023-05-08
| | | | | | | | | in some of the builds. PiperOrigin-RevId: 530308301 Change-Id: I7c885156e14d9c8c444c7c6f8d38e7aaac7c01a7
* Nop change.Gravatar Abseil Team2023-05-08
| | | | | PiperOrigin-RevId: 530238518 Change-Id: I2bfca582c0734f7e6943c5359730a2857809e2d2
* Make `absl::StatusOr::AssignStatus` public. Recommend against using it ↵Gravatar Dino Radakovic2023-05-05
| | | | | | | outside of generic programming (attempt #2 after internal fix) PiperOrigin-RevId: 529796927 Change-Id: I755b7d907f96f4a05d01620503bf0862ce35e847
* Breaks internal codeGravatar Abseil Team2023-05-04
| | | | | PiperOrigin-RevId: 529514670 Change-Id: Ia9a19da52f58c91d5131c2a17308a7a322db2714
* Make `absl::StatusOr::AssignStatus` public. Recommend against using it ↵Gravatar Dino Radakovic2023-05-04
| | | | | | | outside of generic programming PiperOrigin-RevId: 529484669 Change-Id: I9889a9f7a7fa7dc6ef8c731f1b583a74e6afd2cf
* Add tests for btrees in which slot_type is overaligned and slot_type is ↵Gravatar Evan Brown2023-05-04
| | | | | | | | | equal to field_type. Also do some minor refactoring in btree.h. PiperOrigin-RevId: 529460378 Change-Id: I278833ada93bbb7652e149fceed08ce3485e4312
* Add lifetimebound attribute to more Abseil container methods and remove them ↵Gravatar Abseil Team2023-05-04
| | | | | | | from internal ones. PiperOrigin-RevId: 529423722 Change-Id: Ib1cc427299100956c0f2ae6cb5214467ef5a3790
* Add lifetimebound attribute to some Abseil containersGravatar Abseil Team2023-05-03
| | | | | PiperOrigin-RevId: 529119690 Change-Id: If585274c409e2a344c8d60759da6f8f990023d29
* Merge pull request #1441 from Vertexwahn:fix-spelling3Gravatar Copybara-Service2023-05-03
|\ | | | | | | | | PiperOrigin-RevId: 529086715 Change-Id: Id5462322d5707a1b4475438520fcb70ee7b15450
| * Fix spelling mistakesGravatar Vertexwahn2023-05-02
|/
* Add pointer-stability validation in btree.Gravatar Evan Brown2023-05-02
| | | | | | | When we insert a new element, when ASan is enabled, we replace the node that the new element is on in order to try to detect cases of code depending on pointer/reference-stability. PiperOrigin-RevId: 528826645 Change-Id: Ie5c15c13016a8aa831a0d1edc3ad33c1f5ca4d65
* PR #1433: Fix incorrect timespec definition on 32-bit platforms with 64-bit ↵Gravatar Oleg Lyovin2023-05-02
| | | | | | | | | | | | | | | | | time_t Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1433 Some 32-bit configurations may use 64-bit time_t, which leads to different layout of userspace timespec and the one expected by SYS_futex implementation in kernel. In particular the issue occurs when using musl libc which has switched to unconditional 64-bit time_t definition. This patch introduces custom struct timespec with two longs when old SYS_futex is used to match the kernel timespec definition. Merge 2eaca415da825b3f31a90f58a35bdef2b6d2a6c5 into f8bf909108b3604a00590a074f2986c0895514d2 Merging this change closes #1433 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1433 from olegartys:futex_time64_bug 2eaca415da825b3f31a90f58a35bdef2b6d2a6c5 PiperOrigin-RevId: 528796119 Change-Id: Idaa952f64bd97c6dc9703a8b44deac43e29ff9ae
* For Bazel builds, mark some of the low-level tests that are dependentGravatar Derek Mauro2023-05-02
| | | | | | | | | | on timing as flaky. This will run them up to 3 times (in the default configuration) and only consider the test failed if it fails each time. PiperOrigin-RevId: 528785128 Change-Id: I4aa5b74aa3a6873c83f2a01734c679351b1cd5d0
* Instantiate LogMessage::CopyToEncodedBuffer separately for literals and ↵Gravatar Andy Getzendanner2023-05-01
| | | | | | | | | | | non-literals to save an instruction at each operator<<(string) callsite. The operator<<s get inlined at the callsite. The saved instruction is a 'load immediate' to put the StringType argument in a register for passing. This does make the logging TU slightly larger, but it will be an overall size win for all but the smallest programs. Smaller, faster code at callsites is worth it anyway. PiperOrigin-RevId: 528569773 Change-Id: Id8185266a975a12ab6f1a553c2c0846261822396
* Merge pull request #1438 from Vertexwahn:fix-spellingGravatar Copybara-Service2023-05-01
|\ | | | | | | | | PiperOrigin-RevId: 528547013 Change-Id: I9b57ee062ef666d6a34696778ff16a46c5ccb17d
* | Shrink most LOG callsites by one instruction (SysV x86_64 ABI) by ↵Gravatar Andy Getzendanner2023-04-28
| | | | | | | | | | | | | | | | | | | | | | dispatching to per-severity constructors and omitting the severity argument. In that particular ABI, the empty tag structs are NO_CLASS and don't appear in the generated code. https://godbolt.org/z/crqaPh8Kv PiperOrigin-RevId: 527989179 Change-Id: I365f11f6ca1de2623690d0a04e6f02f7de82b1fc
* | Introduce IfConstexpr(Else) utilities for use internally in abseil library ↵Gravatar Evan Brown2023-04-28
| | | | | | | | | | | | | | | | | | implementation. These functions are meant to allow for avoiding complex SFINAE pre-C++17. PiperOrigin-RevId: 527968428 Change-Id: I6524206c9dc50663d7c38abf6d0e8080ca93fc30
| * Fix spelling mistakesGravatar Vertexwahn2023-04-27
|/
* trivial: format some files using clang-formatGravatar Patrick Xia2023-04-27
| | | | | PiperOrigin-RevId: 527598377 Change-Id: I0ae1505db595b7f3a420f2f608c6e02f8800f138
* Merge pull request #1434 from Vertexwahn:fix-spellingGravatar Copybara-Service2023-04-25
|\ | | | | | | | | PiperOrigin-RevId: 527066823 Change-Id: Ifa1e9a43c7490b34f9f4dbfa12d3acbed6b49777
| * Fix some spelling mistakesGravatar Vertexwahn2023-04-24
|/
* Merge pull request #1416 from AtariDreams:fillGravatar Copybara-Service2023-04-24
|\ | | | | | | | | PiperOrigin-RevId: 526675031 Change-Id: Ib84423ccea2d0183166194a0916a97a7ed32915c
* | Mutex: Remove MSVC 2015 workaroundsGravatar Derek Mauro2023-04-24
| | | | | | | | | | PiperOrigin-RevId: 526653332 Change-Id: I0a20d4ac636da3f1a930f96e0cdb9275527e4688
* | Adds template specialization for nullptr assertion of absl::AnyInvocable ↵Gravatar Abseil Team2023-04-24
| | | | | | | | | | | | | | types. PiperOrigin-RevId: 526644558 Change-Id: I050162c2c0d667c32f7e11f51201054cca52667d
* | Fix handling of `CHECK` macros in static analysis tools.Gravatar Abseil Team2023-04-24
| | | | | | | | | | | | | | Currently static analysis tools built using the Clang Dataflow Analysis framework can't prove that code under `switch (0) case 0:` is executed on all paths. The Clang Dataflow Analysis framework should ultimately be improved to handle these cases. In the meantime, to enable the use of such tools in their current state, we add a `default` case back to the `switch` statement in `ABSL_LOG_INTERNAL_STATELESS_CONDITION` to help them understand that the code is executed on all paths. PiperOrigin-RevId: 526638852 Change-Id: I49490dd477ba777aae2530697b75b583242aebc5
* | `AbslHashValue()` applied to a C-style array simply decays the array to a ↵Gravatar Abseil Team2023-04-20
| | | | | | | | | | | | | | pointer and hashes that, which is very unlikely to be what the author intended. PiperOrigin-RevId: 525923741 Change-Id: I876dbde341f0b0642fa3d10e3f67b0b31d0311bf
* | Support pthread_cond_clockwait() and sem_clockwait() on AndroidGravatar Derek Mauro2023-04-20
| | | | | | | | | | | | | | | | | | for __ANDROID_API__ >= 30 https://android.googlesource.com/platform/bionic/+/69010802d037dbc10377416bd9cc696fa34b9384%5E%21/libc/include/pthread.h PiperOrigin-RevId: 525815479 Change-Id: I88cd1a06a4f7bb5380ff7c1e6a8f45e2b04b7df8
* | Fix flaky test failures.Gravatar Evan Brown2023-04-20
| | | | | | | | | | PiperOrigin-RevId: 525808747 Change-Id: I01aeef6b8558673bf1fc38a948dcecf00300b641
* | Minor optimization in btree: avoid redundant stores to node->position when ↵Gravatar Evan Brown2023-04-20
| | | | | | | | | | | | | | constructing nodes. PiperOrigin-RevId: 525792213 Change-Id: I4386385e6e05d74a4ccc18cea505530e919f0e28
| * Prefer copy_n and fill_n over copy and fill where appropriate.Gravatar Rose2023-04-19
|/ | | | This lets us avoid having to do the addition manually.
* Unify std type detection now that older compilers are no longer supportedGravatar Derek Mauro2023-04-19
| | | | | PiperOrigin-RevId: 525462751 Change-Id: Ibd6202cb95e79a48a6b39ccc4b74ead04128eb91
* Add ABSL_RAW_DLOG and ABSL_RAW_DCHECK macrosGravatar Martijn Vels2023-04-18
| | | | | PiperOrigin-RevId: 525241200 Change-Id: I8d1536cb813da8b80a978340343b0243a49928f7
* Add configurability of the log Tag value on AndroidGravatar Abseil Team2023-04-18
| | | | | PiperOrigin-RevId: 525178448 Change-Id: I0f35a38f23316b25621148b7fe59becf72bafeff
* Add an API to clear the saved LogBacktraceAt location, and call it when ↵Gravatar Andy Getzendanner2023-04-18
| | | | | | | setting an empty or invalid flag value. PiperOrigin-RevId: 525065479 Change-Id: I3c0822db8301e0999b0669394b415df82edd445f
* Optional: Remove workaround for lack of support for inheriting constructorsGravatar Derek Mauro2023-04-14
| | | | | PiperOrigin-RevId: 524368346 Change-Id: I68b57a1abc8d805aa5cb4b45c5d7449ade231579
* Span: Remove MSVC 2015 workaroundGravatar Derek Mauro2023-04-14
| | | | | PiperOrigin-RevId: 524347923 Change-Id: I4538eb8d5d6e8befbeb8ab992b0ad44dd8f4f00c
* Reland "Get rid of tail padding within `absl::Duration`. This reduces memory ↵Gravatar Abseil Team2023-04-14
| | | | | | | usage needs when storing duration in containers (e.g. `vector<absl::Duration>` uses 25% less memory), and allows classes with `absl::Duration` fields to fit other stuff in memory previously used by tail padding (e.g. `std::optional<absl::Duration>` is now 16 bytes instead of 24)." PiperOrigin-RevId: 524256689 Change-Id: Ibf40d9e5411020179fa34c972349c7b58aa9d908
* Spell out the meaning of non-reentrant/non-recursive.Gravatar Thomas Köppe2023-04-13
| | | | | PiperOrigin-RevId: 524112966 Change-Id: I197f98f95b1c4de7f53295a6a01db9b0379b4f55
* Don't override clock_gettime in the KernelTimeout and WaiterGravatar Derek Mauro2023-04-13
| | | | | | | tests under sanitizers. The overrides break the sanitizers. PiperOrigin-RevId: 524037272 Change-Id: I85b87d3870c488cb316505e94b394c6f98e9f60f
* Synchronization: Consolidate the logic for whether steady clocks are supportedGravatar Derek Mauro2023-04-12
| | | | | | | for relative timeouts PiperOrigin-RevId: 523789416 Change-Id: Ide4cfdcae9ea7bffca3355c80ea9c8833a9536e6
* In debug mode, detect cases of btree comparators that violate transitivity, ↵Gravatar Evan Brown2023-04-12
| | | | | | | | | i.e. comp(A,B) && comp(B,C) -> comp(A,C). When inserting a new element, we verify that the key is ordered correctly with respect to all the other values on the node, which can be done in constant time. PiperOrigin-RevId: 523729309 Change-Id: Idb5a5912a9aa5411d086cb9fa76791523046778a
* Replace absl::type_traits_internal::is_trivially_copyable withGravatar Derek Mauro2023-04-12
| | | | | | | std::is_trivially_copyable PiperOrigin-RevId: 523724345 Change-Id: Id68c79c3bbb253d892bdef4659ac8a926e023d12
* Name anonymous memory allocations on Linux.Gravatar Abseil Team2023-04-12
| | | | | | | | | | | | | | | | | | | Use Linux's prctl(PR_SET_VMA) system call to name memory arenas being allocated using mmap(MAP_ANONYMOUS). This change allows Abseil's memory arena(s) to be distinguished from other uses of anonymous memory within a process, which in turn helps investigations into the memory usage of applications. The change adds a new prctl() system call to the code paths that call mmap(). This is not expected to add significant overhead to applications. The call to prctl(PR_SET_VMA, ...) can fail if the Linux kernel in use was not configured with the CONFIG_ANON_VMA_NAME kernel option. This should be OK since the naming memory regions is primarily a debugging aid. PiperOrigin-RevId: 523687348 Change-Id: Ie404e5eeef0a6da53330b3a56149c4f3bc6bf5c7
* inlined_vector: fix incorrect restrictions on the copy constructor fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | This has nothing to do with copy assignment or with destruction. PiperOrigin-RevId: 523576913 Change-Id: Iddb6ab73bcfd8b01a29880cdf4db4bc2b5aead8a
* inlined_vector: fix incorrect restrictions on the swap fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | This has nothing to do with copy construction or copy assignment. PiperOrigin-RevId: 523571907 Change-Id: I338b5a40616594406ca8c80b747540c8935798e9
* inlined_vector: fix incorrect restrictions on the move-assignment fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | This has nothing to do with copy construction or copy assignment. PiperOrigin-RevId: 523557887 Change-Id: I332d6ceaf738305157605f1271cb577a83d198c5
* inlined_vector: relax the requirements on the move-construction fast path.Gravatar Aaron Jacobs2023-04-11
| | | | | | | | | Don't require a trivial move constructor and trivial destructor. This excludes types that have declared themselves trivially relocatable by another means, like std::unique_ptr. Instead use "is trivially relocatable" directly, which includes all previous types as well as those that have opted in. PiperOrigin-RevId: 523557136 Change-Id: Icea2dbb8f36f99623308155f2e5b1edd8e5bd36b
* Extend ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS to support HWASANGravatar Abseil Team2023-04-10
| | | | | PiperOrigin-RevId: 523220096 Change-Id: Iaffea2c9c4d112839ca8c2c7f130f72c3d7cc35b
* Synchronization: Support true relative timeouts using the POSIXGravatar Derek Mauro2023-04-08
| | | | | | | | | | | proposed standard pthread_cond_clockwait() and sem_clockwait(). These are currently implemented in glibc >= 2.30. These methods take a clock and use an absolute time with reference to that clock, so KernelTimeout now can produce these values. PiperOrigin-RevId: 522824226 Change-Id: Ife98713f6f95d800b1f8e52d5364a3dbebc4f8a6