aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Demangle C++ requires-expressions with parameters (rQ ... E).Chris Mihelich2024-05-292-0/+19
| | | | | PiperOrigin-RevId: 638266358 Change-Id: I8a750a53d5e98bc3ad3b6d36661789d97d6efb0a
* Demangle Clang's encoding of __attribute__((enable_if(condition, "message"))).Chris Mihelich2024-05-292-2/+62
| | | | | PiperOrigin-RevId: 638244694 Change-Id: I80393c6c00f1554057a915e0d71f88b7d899818c
* Demangle static_cast and friends.Chris Mihelich2024-05-292-0/+83
| | | | | PiperOrigin-RevId: 638232699 Change-Id: I134905927ba72eaa5eaf821bb5535942746a3672
* Demangle decltype(expr)::nested_type (NDT...E).Chris Mihelich2024-05-282-1/+18
| | | | | PiperOrigin-RevId: 638094845 Change-Id: I189ce357ccecbe6f341a311e405f9189bf6c0fee
* Optimize GrowIntoSingleGroupShuffleControlBytes.Connal de Souza2024-05-281-50/+100
| | | | | | | This implementation is designed to avoid needing to copy to an intermediate buffer and then read from it again, which is an expensive Read-after-Write hazard. PiperOrigin-RevId: 638071429 Change-Id: I390b4d38b8c1bd7fffba3d403baba6f1511555b0
* Demangle C++17 fold-expressions.Chris Mihelich2024-05-282-0/+84
| | | | | PiperOrigin-RevId: 638068943 Change-Id: I7ffe7df900ec4854d8712885d212854b31e79fea
* Demangle thread_local helper functions.Chris Mihelich2024-05-282-4/+33
| | | | | PiperOrigin-RevId: 638039514 Change-Id: I623d87e91ebe0a1166fee175151179b61ef54249
* Demangle lambdas with explicit template arguments (UlTy and similar forms).Chris Mihelich2024-05-282-1/+48
| | | | | PiperOrigin-RevId: 638019038 Change-Id: I96a87e4736677df9d44520e4510e089a27372765
* Demangle &-qualified function types.Chris Mihelich2024-05-282-8/+39
| | | | | PiperOrigin-RevId: 637972935 Change-Id: Ia684f7761b2a98a0d9d5ae096daba34e9140aa22
* Demangle valueless literals LDnE (nullptr) and LA<number>_<type>E ("foo").Chris Mihelich2024-05-282-4/+49
| | | | | PiperOrigin-RevId: 637958502 Change-Id: If81eba9729c16b5d5ac7187cf74738d8aaace367
* Correctly demangle the <unresolved-name> at the end of dt and pt (x.y, x->y).Chris Mihelich2024-05-282-1/+11
| | | | | PiperOrigin-RevId: 637934582 Change-Id: Ie89b4317b11adba058dd999800e514eff49d4d69
* Add missing targets to ABSL_INTERNAL_DLL_TARGETSAbseil Team2024-05-261-0/+3
| | | | | | | Include targets that are already included in ABSL_INTERNAL_DLL_FILES. PiperOrigin-RevId: 637498166 Change-Id: I7c5714a962b515a96b6e9e55bb8854b9f303180c
* Build abseil_test_dll with ABSL_BUILD_TESTINGAbseil Team2024-05-262-3/+2
| | | | | | | | | ... even if ABSL_BUILD_TEST_HELPERS is not specified. When not using ABSL_BUILD_DLL, tests builds even if ABSL_BUILD_TEST_HELPERS is not specified. Make this work for ABSL_BUILD_DLL, by ensuring that (BUILD_TESTING AND ABSL_BUILD_TESTING) triggers abseil_test_dll build. PiperOrigin-RevId: 637493023 Change-Id: Icd5868c547365f4788caac47e002fbfc32a03e94
* Demangle C++ requires-expressions without parameters (rq ... E).Chris Mihelich2024-05-242-0/+135
| | | | | PiperOrigin-RevId: 637052089 Change-Id: I8e22c2479749c05d8ca5f9e8eeba480a93da2d18
* overload: make the constructor constexprAbseil Team2024-05-242-1/+15
| | | | | PiperOrigin-RevId: 637029703 Change-Id: I58b4c3a3f1aab3062b51d15c5b9fecfd3ca3193a
* Update Abseil CI Docker image to use Clang 19, GCC 14, and CMake 3.29.3Derek Mauro2024-05-241-2/+2
| | | | | PiperOrigin-RevId: 637008207 Change-Id: I6df357c4b2257b0ee834b2a48a04331b5f677c92
* Workaround symbol resolution bug in Clang 19Derek Mauro2024-05-242-1/+12
| | | | | | | | | | | | | | Clang 19 seems to see the old usage of absl::string_internal::HasAbslStringify in GoogleTest 1.14.0 and incorrectly resolves absl::HasAbslStringify sometimes. This issue is fixed when a version of GoogleTest that removes absl::string_internal::HasAbslStringify is used. This workaround is ugly but will be removed after the next GoogleTest release. PiperOrigin-RevId: 636993564 Change-Id: Ic166edbd4ddc2c716afbedec34be629cfc988e00
* Workaround bogus GCC14 -Wmaybe-uninitialized warningDerek Mauro2024-05-241-8/+8
| | | | | PiperOrigin-RevId: 636992927 Change-Id: I4da3be41a5961d0828eec7ac5c67b299a2e0f237
* Silence a bogus GCC14 -Warray-bounds warningDerek Mauro2024-05-241-0/+10
| | | | | PiperOrigin-RevId: 636990118 Change-Id: Ib90ed852b899a976679a8eb6352a9161c27e17ce
* Forbid absl::Uniform<absl::int128>(gen)Justin Bassett2024-05-244-16/+64
| | | | | | 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
* Use IN_LIST to replace list(FIND) + > -1Abseil Team2024-05-241-12/+2
| | | | | PiperOrigin-RevId: 636945786 Change-Id: I2ea027baab08c05c213648b24a1a59ecdacfcf32
* Recognize C++ vendor extended expressions (e.g., u9__is_same...E).Chris Mihelich2024-05-242-0/+20
| | | | | PiperOrigin-RevId: 636911360 Change-Id: I525e25b90b91712b95ab7499425de85610ff9115
* `overload_test`: Remove a few unnecessary trailing return typesDino Radakovic2024-05-231-6/+4
| | | | | | | | | | `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
* Demangle the C++ this pointer (fpT).Chris Mihelich2024-05-232-3/+27
| | | | | PiperOrigin-RevId: 636695970 Change-Id: I22d6f13271ab965563f1f575d9d7ba0ed1af466d
* Stop eating an extra E in ParseTemplateArg for some L<type><value>E literals.Chris Mihelich2024-05-232-4/+12
| | | | | PiperOrigin-RevId: 636682763 Change-Id: I9e5fd6827cb780c288ff5af54643ee4fbbaca6d5
* Add ABSL_INTERNAL_ATTRIBUTE_VIEW and ABSL_INTERNAL_ATTRIBUTE_OWNER ↵Abseil Team2024-05-231-0/+26
| | | | | | | | | | | | | 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
* 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