| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
std::is_signed can't be specialized, so this actually lets through non-unsigned types where the types are not language primitives (i.e. it lets absl::int128 through). However, std::numeric_limits can be specialized, and is indeed specialized, so we can use that instead.
PiperOrigin-RevId: 636983590
Change-Id: Ic993518e9cac7c453b08deaf3784b6fba49f15d0
|
|
|
|
|
| |
PiperOrigin-RevId: 636911360
Change-Id: I525e25b90b91712b95ab7499425de85610ff9115
|
|
|
|
|
|
|
|
|
|
| |
`absl::StrCat` always returns a `std::string`. Specifying it using a trailing return type does not help.
Tests are documentation, and they should be consistent with [the google style guide](https://google.github.io/styleguide/cppguide.html#trailing_return).
For example, this is different than `-> absl::string_view` and returning string literals, where it is actually a load-bearing change.
PiperOrigin-RevId: 636705683
Change-Id: I0d84a562a59bc0c16be01dd2ae5538adb401432e
|
|
|
|
|
| |
PiperOrigin-RevId: 636695970
Change-Id: I22d6f13271ab965563f1f575d9d7ba0ed1af466d
|
|
|
|
|
| |
PiperOrigin-RevId: 636682763
Change-Id: I9e5fd6827cb780c288ff5af54643ee4fbbaca6d5
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
attributes to Abseil.
This will enable diagnoses similar to those enabled by ABSL_ATTRIBUTE_LIFETIME_BOUND.
See the following links for details:
https://reviews.llvm.org/D64448
https://lists.llvm.org/pipermail/cfe-dev/2018-November/060355.html
PiperOrigin-RevId: 636650605
Change-Id: Iab3a768d57775863addcf0a7c773551ee8f424c6
|
|
|
|
|
| |
PiperOrigin-RevId: 636649618
Change-Id: I73a0be3defa438daf0e9db5c34c0e2feb0e52b69
|
|
|
|
|
| |
PiperOrigin-RevId: 636634618
Change-Id: I812115d2a33dc71446a14deadc6af019eef6dfd7
|
|
|
|
|
| |
PiperOrigin-RevId: 636615840
Change-Id: I34f584ea0c6603a0781e874d683b516de94c6928
|
|
|
|
|
| |
PiperOrigin-RevId: 636566755
Change-Id: I2c8c1f19a67a7a487dd2bbb46c17f9fb4e2b037c
|
|
|
|
|
| |
PiperOrigin-RevId: 636563266
Change-Id: Id4ee907c30d7dac400f1f85776cc5f1fcb3e20b7
|
|
|
|
|
| |
PiperOrigin-RevId: 636218177
Change-Id: I9f58ccbb468fcc0c44ef12162415f7b721a745bf
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 636152885
Change-Id: If545903854ea39cc4b5c51c88cd555072d27d89e
|
|
|
|
|
|
|
| |
`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
|
|
|
|
|
| |
PiperOrigin-RevId: 635955480
Change-Id: I9322b4e7732e252007f6ca6c9b0cefc25974c9f8
|
|
|
|
|
| |
PiperOrigin-RevId: 635938476
Change-Id: I49cba8789452f13cfeb4a24203b3b46624aa7269
|
|
|
|
|
| |
PiperOrigin-RevId: 635913776
Change-Id: I8c765caa918b1afee9f855cf3afbc6489d60735f
|
|
|
|
|
|
|
| |
We follow the C++ demangler in not printing the arguments, just an empty <>.
PiperOrigin-RevId: 635858791
Change-Id: I24903d4c5a1e2060e92ca950bf7a61647aee655f
|
|
|
|
|
|
|
| |
Fixes #1676
PiperOrigin-RevId: 635840902
Change-Id: Ifc4099175f1c5f040f55a9f5a47fe0c996af79d1
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This was supposed to be -Wunreachable-code-aggressive.
PiperOrigin-RevId: 635519833
Change-Id: I2df1ca9ea8a8bf1060006c2b11602646a26eac61
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`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
|
|
|
|
|
|
|
| |
`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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 633974603
Change-Id: I7efd0f0fadf1803aa8eacb86a18366e9a8a07df0
|
|
|
|
|
| |
PiperOrigin-RevId: 633738511
Change-Id: I3f895d5de1aec5b5b9666523a328f3a3b0344e59
|
|
|
|
|
|
|
| |
The tests work either way, but this way the inputs are more realistic.
PiperOrigin-RevId: 633606944
Change-Id: I6c0440f2fceb5b8d9d4aed5818c3171d3fce2fb8
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 633229582
Change-Id: Ibda908d261b52b1af766304992edd77a5bdd56b5
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 631211391
Change-Id: I68bb19d5702626ac497b05d851936aec42cc99d4
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 631018414
Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
PiperOrigin-RevId: 630404862
Change-Id: Icfe4bea2657d319cdd10902ee79af895c43602f1
|
|
|
|
|
| |
PiperOrigin-RevId: 630205286
Change-Id: I14e29fe846701c1381adb4642e55843b482254c6
|
|
|
|
|
| |
PiperOrigin-RevId: 630072639
Change-Id: Ibbb166cc3c0479617c8e48abe8134b59a67a578f
|
|
|
|
|
| |
PiperOrigin-RevId: 630047753
Change-Id: I6ad73216bbe4e279553b9a57bd2727310091c754
|
|
|
|
|
| |
PiperOrigin-RevId: 629403229
Change-Id: I24762df161f8a0ea41e59765ec68273f8607166b
|
|
|
|
|
| |
PiperOrigin-RevId: 628424298
Change-Id: Ia4d15decff040add1b161cd9b472f19f562c49f9
|
|
|
|
|
| |
PiperOrigin-RevId: 628134930
Change-Id: I6b9763f2a87a9259963f00815c6953927f8add73
|
|
|
|
|
| |
PiperOrigin-RevId: 628091370
Change-Id: I2dd20b7f33ab99e78d63688832ab475a513aa3fd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|