| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
PiperOrigin-RevId: 654745969
Change-Id: I96b9797c0fb91cf22e5a50ef97223216683d4ec7
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1720
Merge a72c4bcc7b45d17cf12bee62989722f16f85f0fd into 0598e582f659594aa3592c70ba7dcb251649d264
Merging this change closes #1720
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1720 from eltociear:patch-1 a72c4bcc7b45d17cf12bee62989722f16f85f0fd
PiperOrigin-RevId: 653737423
Change-Id: I5638538d1b008942feba6dc6fc98dcdbf53653ef
|
|
|
|
|
|
|
| |
GetPageSize requires windows include regardless of presence of ASAN or MSAN
PiperOrigin-RevId: 653705885
Change-Id: I4c7eec09db6c1a6168dd249cf584f1774d6cead2
|
|
|
|
|
|
|
| |
GoogleTest version we depend on uses the public file
PiperOrigin-RevId: 653606441
Change-Id: Id49b18835443162ddf9747cc31619f3acf01f4ef
|
|
|
|
|
| |
PiperOrigin-RevId: 652552642
Change-Id: Ic4e367531893714aa216624176a56f39a5f59144
|
|
|
|
|
| |
PiperOrigin-RevId: 652291236
Change-Id: If590aaec354cb4b3f3ccbf91d1d05e75eb1c4c4c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
targets
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1710
Use the SHELL: prefix in compile flag string to avoid passing it as quoted string
Introduced in CMake 3.12, but as CMake 3.16 is required by this project it will be ok.
According to https://cmake.org/cmake/help/latest/command/target_compile_options.html#option-de-duplication, CMake's target_compile_options ignores duplicate items, like from the quote of the link:
> While beneficial for individual options, the de-duplication step can break up option groups. For example, -option A -option B becomes -option A B. One may specify a group of options using shell-like quoting along with a SHELL: prefix.
This was our problem, -option A -option B should be there, but CMake just made it like -option A B, B was not guarded by -Xarch which led to a compilation error.
I originally tried the fix with quoting the "-option A", but it led to the quoted string passed to the compiler, and therefore ignored.
Now I am using the SHELL: suffix supported by CMake, and it shows differences:
> Current build command with quotes:
> ... -DNOMINMAX "-Xarch_x86_64 -maes" "-Xarch_x86_64 -msse4.1" ... (Wrong)
> With the SHELL: prefix applied:
> ... -DNOMINMAX -Xarch_x86_64 -maes -Xarch_x86_64 -msse4.1 ... (Correct)
Merge 661534618fb62c22336e473aff66a8915f9b4185 into cd7f66cab520e99531979b3fd727a25616a1ccbb
Merging this change closes #1710
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1710 from Royna2544:master 661534618fb62c22336e473aff66a8915f9b4185
PiperOrigin-RevId: 651433382
Change-Id: I4c626e18ae8b33a8177ea79714b9678f955f469f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1695
#1495 converted the `if (APPLE)` check for linking against `CoreFoundation` to generator expressions, which is fine and all.
The issue is that they forgot the other Apple platforms, making builds for iOS impossible.
This patch fixes this issue by adding the other Apple platforms that CMake support to the generator expression.
Merge 4f01df8e09f0dc216006dd7ca2d9ce216122b443 into 6dee153242d7becebe026a9bed52f4114441719d
Merging this change closes #1695
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1695 from GeniusVentures:fix-time-build 4f01df8e09f0dc216006dd7ca2d9ce216122b443
PiperOrigin-RevId: 651416278
Change-Id: I47e4d52384e946cc9e421922f7c6edd5bfa1d976
|
|
|
|
|
| |
PiperOrigin-RevId: 651258120
Change-Id: I1c343bc11407d33dc2d0bb1686be4bdbe6a600df
|
|
|
|
|
|
|
| |
Also, return the middle of the poisoned block.
PiperOrigin-RevId: 651119057
Change-Id: Iae0fc3dcb40e32cd449f469d9b8d62c37f3773f4
|
|
|
|
|
| |
PiperOrigin-RevId: 651093644
Change-Id: Ia5bb3343ef06529d5fa2d469bcad47451ea79c69
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1707
Switched to append a full string of "-Xarch_x86_64 -maes" instead of " -Xarch_x86_64" "-maes", for example. Now cmake correctly appends -Xarch_x86_64 to each x64 specific compile option, removing the error caused in recent clang releases:
clang++: error: unsupported option '-msse4.1' for target 'arm64-apple-darwin23.5.0'
Merge 83d17537ee70158d627681a0f0c15f15f30ef838 into f46495ea96f68fc3f6c394f099b2992743f6ff7f
Merging this change closes #1707
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1707 from Royna2544:patch-1 83d17537ee70158d627681a0f0c15f15f30ef838
PiperOrigin-RevId: 651046496
Change-Id: Ifdb3848febeead4fb562a2d9f0fdca2e0aea185d
|
|
|
|
|
|
|
| |
https://learn.microsoft.com/en-us/cpp/code-quality/c26816?view=msvc-170
PiperOrigin-RevId: 650044473
Change-Id: I2bf31f1e4b972e890194d21c5a6dcb4ee9993484
|
|
|
|
|
|
|
| |
This allows them to be used in constant expressions, such as static_asserts.
PiperOrigin-RevId: 649292841
Change-Id: I76e31a94b933fa357276fee534b81c00c28c8b23
|
|
|
|
|
|
|
| |
string).
PiperOrigin-RevId: 649200175
Change-Id: Ic6741d9fe5e0b1853ed8bb37b585d38b51d15581
|
|
|
|
|
| |
PiperOrigin-RevId: 649138261
Change-Id: I8687eb7b06cc9e96779d1d3e98b44b4f643c95a8
|
|
|
|
|
|
|
| |
unsigned integer overflow.
PiperOrigin-RevId: 648730502
Change-Id: I662c365c59be9e51f565fd215d284a96b7bd8743
|
|
|
|
|
|
|
|
| |
This change makes the mutable overloads of CompressedTuple::get() constexpr.
This is consistent with std::get(std::tuple), which is constexpr since C++14.
PiperOrigin-RevId: 648603141
Change-Id: Icbd61809f7a06723cf581dbed5488b7bae998cc9
|
|
|
|
|
|
|
|
|
|
|
| |
This library provides `LookupSymbol` and `LookupSymbolByAddress`. The latter
needs `GetNumSymbols` support. An object file needs either .hash (DT_HASH) or
.gnu.hash (DT_GNU_HASH). This patch adds DT_GNU_HASH support.
Note: glibc has been supporting DT_GNU_HASH since 2006 and .hash has been quite
obsoleted in the Linux communities.
PiperOrigin-RevId: 648459622
Change-Id: I3aa1274cd4617990844258175715e3be2343afd2
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows them to be used in constexpr expressions, such as the following:
```
constexpr int distance = absl::c_distance(std::array<int, 3>());
```
Requires at least C++17 to be constexpr.
PiperOrigin-RevId: 648435141
Change-Id: I8136e351a6dc4c25f06ef895fb449f4f11048480
|
|
|
|
|
| |
PiperOrigin-RevId: 648433954
Change-Id: I32e47a89685419ae8d37dfadb354cfaab2a35ae9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
standardized in C++11
Migrate all Abseil code to `[[noreturn]]`. Notably,
https://github.com/abseil/abseil-cpp/issues/1698 reports that
`[[noreturn]]` works better here.
We can't migrate `ABSL_ATTRIBUTE_NORETURN` to use `[[noreturn]]`
because the difference in accepted attribute placement
breaks some code.
PiperOrigin-RevId: 648395324
Change-Id: Icd3e9b837aac25f128e8994de099f1edb3cabccf
|
|
|
|
|
|
|
|
|
| |
This breaks Chromium due to global constructor and incorrectly
assumes page size.
https://github.com/abseil/abseil-cpp/pull/1697
PiperOrigin-RevId: 648377066
Change-Id: I19f8b2655971a0c314091e26e62e10a5a9c46e94
|
|
|
|
|
|
|
| |
void* to T* is well defined
PiperOrigin-RevId: 648352837
Change-Id: I082cd0c007706ae8baa8f26cdc85d51b69bffd54
|
|
|
|
|
|
|
|
|
| |
It is not possible to have a constant-initialized object of type
absl::NoDestructor<T>. Fix the documentation so that it doesn't
mention this possibility. Only recommend it use as a function-scope
static variable, and discourage its use as a global variable.
PiperOrigin-RevId: 647488395
Change-Id: Ifee052fce07609d3de72cddc30e86de67706cd91
|
|
|
|
|
| |
PiperOrigin-RevId: 647417773
Change-Id: I7d945ae27199262b3baf83b232d17c2f641a27ac
|
|
|
|
|
| |
PiperOrigin-RevId: 647359155
Change-Id: I5aba1169b01a74c4431f5ee3788b490124eeaa65
|
|
|
|
|
| |
PiperOrigin-RevId: 647340145
Change-Id: I4b0076595dbda1f81ffdc32adad2dc1e35cb9e04
|
|
|
|
|
|
|
|
|
| |
`absl::erase_if`.
Since we have potential plans to use this function more widely including `absl::c_for_each`, we need to have good error detection.
PiperOrigin-RevId: 647236725
Change-Id: I5035bfb8cef24f80f1bbed83a42380e57d84e428
|
|
|
|
|
| |
PiperOrigin-RevId: 647093624
Change-Id: Ic76bfa4aa8fb616cb23095ce7bfa30c3812dcb21
|
|
|
|
|
|
|
| |
These functions are based on the C++23's `std::ranges::contains()` and `std::ranges::contains_subrange()` functions, see: https://en.cppreference.com/w/cpp/algorithm/ranges/contains
PiperOrigin-RevId: 647084955
Change-Id: If5a01784e3cf1cc4d88e7f2fef92a3701fafc886
|
|
|
|
|
|
|
| |
This is portable because cord already has `operator<` etc., which will be unaffected. This just allows C++ >= 20 users to explicitly call `operator<=>`.
PiperOrigin-RevId: 646951415
Change-Id: I1432e224bd5dc09b99d56a1d27e95078463adf45
|
|
|
|
|
| |
PiperOrigin-RevId: 646949076
Change-Id: I0d3fc57aee38e5b3a5b85e2301f5035bfd0e388b
|
|
|
|
|
| |
PiperOrigin-RevId: 646614152
Change-Id: Iee853bdc6f753d758c850a529a6adb05d0d0b1a7
|
|
|
|
|
|
|
| |
The motivation is to make destroyed/moved-from objects cause crashes when they are accessed.
PiperOrigin-RevId: 646229564
Change-Id: I68d9c189b542df0933af08f5ad63dc1f5764d856
|
|
|
|
|
| |
PiperOrigin-RevId: 646172195
Change-Id: I089f1d84f2d73b663f12e6818f96436e054e71ae
|
|
|
|
|
|
|
|
| |
windows_clangcl_bazel.bat includes a change from --copt to --cxxopt to
only pass /std:c++XX to C++ compiles
PiperOrigin-RevId: 646157298
Change-Id: Ib6d9861a2b2d45eb0d664f23b6f3a7426f8e0ab3
|
|
|
|
|
| |
PiperOrigin-RevId: 646105357
Change-Id: Ia76c1ce33faf811e988d36747f187c112ccb967e
|
|
|
|
|
| |
PiperOrigin-RevId: 646031348
Change-Id: I212e34a0b89293bd9f0081047bb5a1eba5d04bcb
|
|
|
|
|
|
|
|
| |
`optimization.h` needs to be compatible with C.
`#include <utility>` is C++-only.
PiperOrigin-RevId: 645651894
Change-Id: I55ebc3369b05788346cd0ab684b50bdfc2345fd4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1692
`optimization.h` uses `std::unreachable()` if available but does not include `<utility>`, causing errors in `absl/strings/ascii.cc`.
Merge bf912bb4e38341d6152ee145ec2be00251c42552 into 8a28a0c8732ba3bf0191fb6292fcad6e5948a047
Merging this change closes #1692
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1692 from poconn:optimization_missing_include bf912bb4e38341d6152ee145ec2be00251c42552
PiperOrigin-RevId: 645643983
Change-Id: I3966984afa81f2f6bce65dd872d326f0af114bfa
|
|
|
|
|
| |
PiperOrigin-RevId: 645286828
Change-Id: I00efdf1bf774daafbd34c898cf4a524852b638e0
|
|
|
|
|
|
|
|
|
| |
IterateOverFullSlots.
We decided to not allow reentrance in absl::erase_if and absl::container_internal::c_for_each_fast.
PiperOrigin-RevId: 645273965
Change-Id: I75dfc73b93ba10f0e051bf0833723af887e1bb36
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This function is aimed to achieve faster iteration through the entire hash table.
It is not ready to be used by the public and stays in `container_internal` namespace.
Differences with `absl::c_for_each`:
1. No guarantees on order of iteration. Although for the hash table it is partially not guaranteed already. But we do not even guarantee that it is the same order as in the for loop range. De facto, the order is the same at the moment.
2. No mutating reentrance is allowed. Most notably erasing from the hash_table is not allowed.
Based on microbenchmarks, there are following conclusions:
1. c_for_each_fast is clearly faster on big tables with 20-60% speedup.
2. Microbenchmarks show regression on a full small table without any empty slots.
We should avoid recommending that for small tables.
3. It seems reasonable to use `c_for_each_fast` in places, where `skip_empty_or_deleted` has significant GCU usage. `skip_empty_or_deleted` usage signals that there are "gaps" between elements, so `c_for_each_fast` should be an improvement.
PiperOrigin-RevId: 645142512
Change-Id: I279886b8c8b2545504c2bf7e037d27b2545e044d
|
|
|
|
|
| |
PiperOrigin-RevId: 645054874
Change-Id: Ic4a820b47edfa71bd3e1f149d54f00ac3c1d16a6
|
|
|
|
|
|
|
| |
For performance reasons, these containers are optimized for the case in which allocations/deallocations/comparisons/hashers can't throw exceptions.
PiperOrigin-RevId: 645054627
Change-Id: I99be651b26f5bbb87da6ef246b92b20a375224d7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a replacement for the `absl_nullability_compatible` tag. The attribute
has the advantage that, unlike the tag, it can be applied to forward
declarations.
This does not yet change the implementation of the nullability annotations --
that will come in a followup patch.
As the nullability annotations themselves have not been changed, the
`absl_nullability_compatible` tag is currently still used to check whether the
annotations can be applied to a given type; see also the comments in the code.
PiperOrigin-RevId: 644238698
Change-Id: I5882606f82ce7a6dd98e83e6d920573437561b50
|
|
|
|
|
| |
PiperOrigin-RevId: 644150551
Change-Id: I11f3f8463fcfdb8d0284b1ab320624bbce6d1e48
|
|
|
|
|
|
|
| |
attributes to more types in Abseil
PiperOrigin-RevId: 643946867
Change-Id: Ia4fb583872dabd72c48cc4c20fe23a64dea517a6
|
|
|
|
|
| |
PiperOrigin-RevId: 643418422
Change-Id: Ib16cfef8ddedc8366df49ca75ab02eb60af08f26
|