aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * Demangle C++ direct-list-initialization (T{1, 2, 3}, tl ... E).Chris Mihelich2024-05-232-0/+93
| | | | | | | | | | PiperOrigin-RevId: 636649618 Change-Id: I73a0be3defa438daf0e9db5c34c0e2feb0e52b69
| * Demangle the C++ spaceship operator (ss, operator<=>).Chris Mihelich2024-05-232-0/+23
| | | | | | | | | | PiperOrigin-RevId: 636634618 Change-Id: I812115d2a33dc71446a14deadc6af019eef6dfd7
| * Demangle C++ sZ encodings (sizeof...(pack)).Chris Mihelich2024-05-232-17/+64
| | | | | | | | | | PiperOrigin-RevId: 636615840 Change-Id: I34f584ea0c6603a0781e874d683b516de94c6928
| * Demangle C++ so ... E encodings (typically array-to-pointer decay).Chris Mihelich2024-05-232-0/+50
| | | | | | | | | | PiperOrigin-RevId: 636566755 Change-Id: I2c8c1f19a67a7a487dd2bbb46c17f9fb4e2b037c
| * Recognize dyn-trait-type in Rust demangling.Chris Mihelich2024-05-232-1/+104
| | | | | | | | | | PiperOrigin-RevId: 636563266 Change-Id: Id4ee907c30d7dac400f1f85776cc5f1fcb3e20b7
| * Rework casting in raw_hash_set's IsFull().Paul Rigge2024-05-221-1/+6
| | | | | | | | | | PiperOrigin-RevId: 636218177 Change-Id: I9f58ccbb468fcc0c44ef12162415f7b721a745bf
| * Remove test references to absl::SharedBitGen, which was never part ofDerek Mauro2024-05-222-2/+2
| | | | | | | | | | | | | | | | the open source release. This was only used in tests that never ran as part in the open source release. PiperOrigin-RevId: 636167506 Change-Id: Iafc33bd768307fe9ee77b181369635012abf2245
| * Recognize fn-type and lifetimes in Rust demangling.Chris Mihelich2024-05-222-4/+124
| | | | | | | | | | PiperOrigin-RevId: 636152885 Change-Id: If545903854ea39cc4b5c51c88cd555072d27d89e
| * Support int128/uint128 in validated MockingBitGenJustin Bassett2024-05-214-5/+16
| | | | | | | | | | | | | | `absl::int128` and `absl::uint128` are not `std::is_integral`. There is an internal `IsIntegral` type trait we could use, but it actually makes more sense to remove the `static_assert` altogether. Any compile-time validation should be done in `absl::Uniform` itself, and duplicating that logic here just increases the chance of divergence. PiperOrigin-RevId: 635971431 Change-Id: I9177ae64c86ee1abe6571e0b29aba1844553c972
| * Recognize inherent-impl and trait-impl in Rust demangling.Chris Mihelich2024-05-212-2/+62
| | | | | | | | | | PiperOrigin-RevId: 635955480 Change-Id: I9322b4e7732e252007f6ca6c9b0cefc25974c9f8
| * Recognize const and array-type in Rust mangled names.Chris Mihelich2024-05-212-2/+119
| | | | | | | | | | PiperOrigin-RevId: 635938476 Change-Id: I49cba8789452f13cfeb4a24203b3b46624aa7269
| * Remove Asylo from absl.Abseil Team2024-05-211-6/+5
| | | | | | | | | | PiperOrigin-RevId: 635913776 Change-Id: I8c765caa918b1afee9f855cf3afbc6489d60735f
| * Recognize generic arguments containing only types in Rust mangled names.Chris Mihelich2024-05-212-1/+62
| | | | | | | | | | | | | | We follow the C++ demangler in not printing the arguments, just an empty <>. PiperOrigin-RevId: 635858791 Change-Id: I24903d4c5a1e2060e92ca950bf7a61647aee655f
| * Fix missing #include <random> for std::uniform_int_distributionDerek Mauro2024-05-211-0/+1
| | | | | | | | | | | | | | Fixes #1676 PiperOrigin-RevId: 635840902 Change-Id: Ifc4099175f1c5f040f55a9f5a47fe0c996af79d1
| * Move `prepare_insert` out of the line as type erased `PrepareInsertNonSoo`.Vitaly Goldshteyn2024-05-204-161/+295
| | | | | | | | | | | | | | | | | | This significantly reduces binary size of big binaries and creates a single hot function instead of many cold. That is decreasing cash misses during code execution. We also avoid size related computations for tables with no deleted slots, when resize is necessary. PiperOrigin-RevId: 635527119 Change-Id: I763b135f1f6089051e62e348a07b33536af265ab
| * Revert: Add -Wdead-code-aggressive to ABSL_LLVM_FLAGSPeter Boström2024-05-203-5/+0
| | | | | | | | | | | | | | This was supposed to be -Wunreachable-code-aggressive. PiperOrigin-RevId: 635519833 Change-Id: I2df1ca9ea8a8bf1060006c2b11602646a26eac61
| * Add (unused) validation to absl::MockingBitGenJustin Bassett2024-05-2010-144/+553
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `absl::Uniform(tag, rng, a, b)` has some restrictions on the values it can produce in that it will always be in the range specified by `a` and `b`, but these restrictions can be violated by `absl::MockingBitGen`. This makes it easier than necessary to introduce a bug in tests using a mock RNG. We can fix this by making `MockingBitGen` emit a runtime error if the value produced is out of bounds. Immediately fixing all the internal buggy uses of `MockingBitGen` is currently infeasible, so the plan is this: 1. Add turned-off validation to `MockingBitGen` to avoid the costs of maintaining unsubmitted code. 2. Temporarily migrate the internal buggy use cases to keep the current behavior, to be fixed later. 3. Turn on validation for `MockingBitGen`. 4. Fix the internal buggy use cases over time. --- A few of the different categories of errors I found: - `Call(tag, rng, a, b) -> a or b`, for open/half-open intervals (i.e. incorrect boundary condition). This case happens quite a lot, e.g. by specifying `absl::Uniform<double>(rng, 0, 1)` to return `1.0`. - `Call(tag, rng, 0, 1) -> 42` (i.e. return an arbitrary value). These may be straightforward to fix by just returning an in-range value, or sometimes they are difficult to fix because other data structures depend on those values. PiperOrigin-RevId: 635503223 Change-Id: I9293ab78e79450e2b7b682dcb05149f238ecc550
| * Support `AbslStringify` with `DCHECK_EQ`.Abseil Team2024-05-165-14/+240
| | | | | | | | | | | | | | `AbslStringify` is the [recommended](abseil.io/tips/215) way to make a type printable. However, the simple expression `DCHECK_EQ(x, y)` fails when either argument implements it, and not `operator<<`. PiperOrigin-RevId: 634261367 Change-Id: Ic42666c286cf172c9482abbd28194da828706c71
| * PR #1672: Optimize StrJoin with tuple without user defined formatterValery Mironov2024-05-153-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1672 https://github.com/abseil/abseil-cpp/discussions/1671 Merge ddcbb2466b2c9c4048d60be7e58cf47f935c257d into eba8db7baf6c326870f28e58977075b7b2fb243d Merging this change closes #1672 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1672 from MBkkt:optimize-str-join ddcbb2466b2c9c4048d60be7e58cf47f935c257d PiperOrigin-RevId: 633988391 Change-Id: I2b3904211a29de3a768fb90a7fc106d7ff6c03e7
| * Give ReturnAddresses and N<uppercase> namespaces separate stacks for clarity.Chris Mihelich2024-05-151-26/+35
| | | | | | | | | | PiperOrigin-RevId: 633974603 Change-Id: I7efd0f0fadf1803aa8eacb86a18366e9a8a07df0
| * Demangle Rust backrefs.Chris Mihelich2024-05-142-6/+165
| | | | | | | | | | PiperOrigin-RevId: 633738511 Change-Id: I3f895d5de1aec5b5b9666523a328f3a3b0344e59
| * Use Nt for struct and trait names in Rust demangler test inputs.Chris Mihelich2024-05-141-43/+43
| | | | | | | | | | | | | | The tests work either way, but this way the inputs are more realistic. PiperOrigin-RevId: 633606944 Change-Id: I6c0440f2fceb5b8d9d4aed5818c3171d3fce2fb8
| * Allow __cxa_demangle on MIPSBenjamin Barenblat2024-05-131-1/+1
| | | | | | | | | | | | | | | | Both libstdc++ and libc++abi currently ship a __cxa_demangle on MIPS; there’s no reason to avoid using it. PiperOrigin-RevId: 633319823 Change-Id: I8d28a87f9998a62a25e0e149138395f8994e6fb5
| * Add a `string_view` overload to `absl::StrJoin`Derek Mauro2024-05-132-4/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows users to pass a collection of string-like objects in an `initializer_list` without having to convert everything to the same type first. `initializer_list` has the requirement that everything is copied in to the list. For strings hitting the `string_view` overload avoids unnecessary copies. This may be a breaking change if `absl::StrJoin` has an explicit template parameter, for example `absl::StrJoin<std::string>({foo, "bar"});`. In this case, remove the explicit template parameter. PiperOrigin-RevId: 633295575 Change-Id: Ie5f0860f409f639a27a58949842ec961e0b3bdeb
| * Demangle Rust's Y<type><path> production for passably simple <type>s.Chris Mihelich2024-05-133-6/+229
| | | | | | | | | | PiperOrigin-RevId: 633229582 Change-Id: Ibda908d261b52b1af766304992edd77a5bdd56b5
| * `convert_test`: Delete obsolete condition around ASSERT_EQ in ↵Dino Radakovic2024-05-101-9/+7
| | | | | | | | | | | | | | | | | | TestWithMultipleFormatsHelper The `if (actual != expected)` makes the `ASSERT_EQ(actual, expected)` trigger only when the assertion fails. However, a successful `ASSERT_EQ` takes a negligible amount of time, which means the `if` is useless and only makes the test harder to read. PiperOrigin-RevId: 632487285 Change-Id: I1f78136cf4895295c88a5ff3e0bcdce6b08c1d0b
| * `any_invocable`: Clean up #includesDino Radakovic2024-05-082-1/+2
| | | | | | | | | | | | | | | | | | - remove [<initializer_list>](https://en.cppreference.com/w/cpp/header/initializer_list) from internal header. It declares `std::initializer_list`, `std::begin` and `std::end`, none of which are used there - add `absl/base/attributes.h` to the internal header because it provides `ABSL_FALLTHROUGH_INTENDED` - add [<functional>](https://en.cppreference.com/w/cpp/header/functional) to the public header, because it provides `std::reference_wrapper` PiperOrigin-RevId: 632018125 Change-Id: Icf7a9c8a920c9c076ef416ea80995e3a81ce3e81
| * Resynchronize absl/functional/CMakeLists.txt with BUILD.bazelBenjamin Barenblat2024-05-081-0/+4
| | | | | | | | | | | | | | | | | | | | overload_test needs some extra dependencies to build when absl::variant is not an alias for std::variant; these dependencies are listed in absl/functional/BUILD.bazel but not in absl/functional/CMakeLists.txt. Copy dependencies from BUILD.bazel to CMakeLists.txt. PiperOrigin-RevId: 631845552 Change-Id: I63f53323b28aff36530be645b312e94b24475f53
| * `any_invocable`: Add public documentation for undefined behavior when ↵Dino Radakovic2024-05-072-1/+10
| | | | | | | | | | | | | | | | | | | | invoking an empty AnyInvocable This is currently documented in `internal/any_invocable.h`, but not in the public API. For example, `std::function` [documents](https://en.cppreference.com/w/cpp/utility/functional/function) the fact that invoking an empty instance throws `std::bad_function_call`. PiperOrigin-RevId: 631621604 Change-Id: I6b886a805ffa0e7aaef5f6971e1eafd14f94050c
| * `any_invocable`: Delete obsolete reference to proposed standard typeDino Radakovic2024-05-071-5/+5
| | | | | | | | | | | | | | | | The comment calls if `any_invocable`, but the standard ultimately chose [`move_only_function`](https://en.cppreference.com/w/cpp/utility/functional/move_only_function/move_only_function). And `absl::AnyInvocable` does not officially track the standard. PiperOrigin-RevId: 631612663 Change-Id: I3f21f33cd6e2c6ce06ac92a8d2a68db6f942ea1b
| * PR #1662: Replace shift with addition in crc multiplyPavel P2024-05-072-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1662 Merge 4b2c6c909b573d31a1cccba7cb72d4d8badeef8b into cba31a956209e68e4d4049e8a9bc03b1fd67320a Merging this change closes #1662 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1662 from pps83:crc-add 4b2c6c909b573d31a1cccba7cb72d4d8badeef8b PiperOrigin-RevId: 631470883 Change-Id: I4a72be643ed341ddf0e0007418ab4a613a03db4b
| * Doc fix.Abseil Team2024-05-061-1/+1
| | | | | | | | | | PiperOrigin-RevId: 631211391 Change-Id: I68bb19d5702626ac497b05d851936aec42cc99d4
| * `convert_test`: Extract loop over tested floats from helper functionDino Radakovic2024-05-061-14/+18
| | | | | | | | | | | | | | | | | | | | This change is a step towards simplifying `TestWithMultipleFormatsHelper` to the point where we'll be able to handle special cases (e.g. apple's handling of nan) by changing which inputs are fed into the helper, instead of skipping them within the helper and not testing them at all. Extracting the loop also improves readability by reducing indentation. PiperOrigin-RevId: 631038465 Change-Id: I8b2458539d9d276093d8e7b5f373efba6a33800c
| * Recognize some simple Rust mangled names in Demangle.Chris Mihelich2024-05-069-2/+751
| | | | | | | | | | PiperOrigin-RevId: 631018414 Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
| * Use __builtin_ctzg and __builtin_clzg in the implementations ofDerek Mauro2024-05-031-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CountTrailingZeroesNonzero16 and CountLeadingZeroes16 when they are available. GCC 14 and Clang 19 adds these new builtins. The g-suffix is for "generic". The s-suffix on __builtin_ctzs and __builtin_clzs is for "short". GCC never implemented the short versions and #1664 reports GCC 14 (pre-release) gives an error here, although this may be a pre-release bug. Fixes #1664 PiperOrigin-RevId: 630408249 Change-Id: I4aedcc82b85430f50d025f8eb1cab089c6fcd1bc
| * Remove the forked absl::Status matchers implementation in statusor_testDerek Mauro2024-05-033-143/+26
| | | | | | | | | | PiperOrigin-RevId: 630404862 Change-Id: Icfe4bea2657d319cdd10902ee79af895c43602f1
| * Add comment hack to fix copybara reversibilityDerek Mauro2024-05-023-3/+3
| | | | | | | | | | PiperOrigin-RevId: 630205286 Change-Id: I14e29fe846701c1381adb4642e55843b482254c6
| * Add GoogleTest matchers for absl::StatusZie Weaver2024-05-027-0/+627
| | | | | | | | | | PiperOrigin-RevId: 630072639 Change-Id: Ibbb166cc3c0479617c8e48abe8134b59a67a578f
| * [random] LogUniform: Document as a discrete distributionAbseil Team2024-05-021-2/+2
| | | | | | | | | | PiperOrigin-RevId: 630047753 Change-Id: I6ad73216bbe4e279553b9a57bd2727310091c754
| * Enable Cord tests with Crc.Fergus Henderson2024-04-301-15/+13
| | | | | | | | | | PiperOrigin-RevId: 629403229 Change-Id: I24762df161f8a0ea41e59765ec68273f8607166b
| * Fix order of qualifiers in `absl::AnyInvocable` documentation.Abseil Team2024-04-261-3/+3
| | | | | | | | | | PiperOrigin-RevId: 628424298 Change-Id: Ia4d15decff040add1b161cd9b472f19f562c49f9
| * Guard against null pointer dereference in DumpNode.Fergus Henderson2024-04-251-4/+5
| | | | | | | | | | PiperOrigin-RevId: 628134930 Change-Id: I6b9763f2a87a9259963f00815c6953927f8add73
| * Apply ABSL_MUST_USE_RESULT to try lock functions.Chris Kennelly2024-04-252-5/+7
| | | | | | | | | | PiperOrigin-RevId: 628091370 Change-Id: I2dd20b7f33ab99e78d63688832ab475a513aa3fd
| * Add public aliases for default hash/eq types in hash-based containersDennis Kormalev2024-04-248-28/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generic user code sometimes wants to provide more flexibility for its own users and provide type arguments that are used as Hash/Eq in underlying containers. However, there is no sensible publicly available default value for it yet. This CL fixes this issue and provides publicly visible aliases that such user code can use. PiperOrigin-RevId: 627844757 Change-Id: I4c393007244ad8d998da02883c623eae1715c0df
| * Import of CCTZ from GitHub.Abseil Team2024-04-241-1/+1
| | | | | | | | | | PiperOrigin-RevId: 627807723 Change-Id: I106cfe4d3d614b26422f632e856397b8bdcf743e
| * Remove the hand-rolled CordLeaker and replace with absl::NoDestructorDerek Mauro2024-04-243-27/+9
| | | | | | | | | | | | | | to test the after-exit behavior PiperOrigin-RevId: 627804039 Change-Id: Idc1c5fc14cea466dcc98f0d8746c02cafe887502
| * `convert_test`: Delete obsolete `skip_verify` parameter in test helperDino Radakovic2024-04-241-10/+7
| | | | | | | | | | | | | | | | It is unused. We already use code within the `TestWithMultipleFormatsHelper` to skip output verification for Apple and MSVC. PiperOrigin-RevId: 627783586 Change-Id: Ib51374e8571aa5f4b5f1e836815188bd9bdc1536
| * overload: allow using the underlying type with CTAD directly.Aaron Jacobs2024-04-232-86/+125
| | | | | | | | | | | | | | There's no need to go through an extra layer of indirection to get this. PiperOrigin-RevId: 627567108 Change-Id: I241851c5294417aae069047e35961ed58475e59e
| * PR #1653: Remove unnecessary casts when calling CRC32_u64Pavel P2024-04-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1653 CRC32_u64 returns uint32_t, no need to cast returned result to uint32_t Merge 90e7b063f39c6b1559a21832d764e500e1cdd40c into 9a61b00dde4031f17ed4fa4bdc0e0e9ad8859846 Merging this change closes #1653 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1653 from pps83:CRC32_u64-cast 90e7b063f39c6b1559a21832d764e500e1cdd40c PiperOrigin-RevId: 626462347 Change-Id: I748a2da5fcc66eb6aa07aaf0fbc7eca927fcbb16
| * PR #1652: Avoid C++23 deprecation warnings from float_denorm_stylePavel P2024-04-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1652 this change fixes errors emitted by MS compiler: ``` 1>C:\abseil-cpp\absl\numeric\int128.h(278,20): error C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. ``` Merge 7be96350012559b2b3f3b705cb06088e0a6aaf0d into 7efc308b31d3635a6fb0cb94f9f0ac2317d11fcf Merging this change closes #1652 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1652 from pps83:float_denorm_style-warn 7be96350012559b2b3f3b705cb06088e0a6aaf0d PiperOrigin-RevId: 626124710 Change-Id: I5fc2b5758dcb3956164dbec1e8559f241a0d7bf7