aboutsummaryrefslogtreecommitdiff
path: root/absl/debugging/internal/demangle.cc
Commit message (Collapse)AuthorAgeFilesLines
* Demangle transaction-safety notations GTt and Dx.Chris Mihelich2024-06-071-1/+9
| | | | | PiperOrigin-RevId: 641249074 Change-Id: Id410ce6c3b7a9a2b10aedf9c70ec65d3e37af06d
* Demangle C++11 user-defined literal operator functions.Chris Mihelich2024-06-061-2/+8
| | | | | PiperOrigin-RevId: 641046309 Change-Id: Iaa2564a60035421969c2cd6074a457980083cbd2
* Demangle C++20 constrained friend names, F (<source-name> | <operator-name>).Chris Mihelich2024-06-061-0/+14
| | | | | PiperOrigin-RevId: 641011959 Change-Id: I844d4eb99a9f9da160bb53e491dee753a70750df
* Demangle dependent GNU vector extension types, Dv <expression> _ <type>.Chris Mihelich2024-06-061-2/+11
| | | | | PiperOrigin-RevId: 640993627 Change-Id: I84073099907a3634eca4b12cd2e633908465907a
* Demangle elaborated type names, (Ts | Tu | Te) <name>.Chris Mihelich2024-06-061-1/+14
| | | | | PiperOrigin-RevId: 640972027 Change-Id: I810aaa10e7761686d03854abab3198be8b2868cf
* Demangle delete-expressions with the global-scope operator, gs (dl | da) ....Chris Mihelich2024-06-061-2/+13
| | | | | PiperOrigin-RevId: 640928445 Change-Id: I547f194ebb0a4482ecec627a7a03bab60e8e1c0b
* Demangle new-expressions with braced-init-lists.Chris Mihelich2024-06-061-0/+12
| | | | | PiperOrigin-RevId: 640908672 Change-Id: I85bed6e7d79b24b693007c08acde8e28e3e1429c
* Demangle array new-expressions, [gs] na ....Chris Mihelich2024-06-061-1/+5
| | | | | PiperOrigin-RevId: 640891321 Change-Id: I2bc0f6b907d8af88446375409fb523158ae0e001
* Demangle object new-expressions, [gs] nw ....Chris Mihelich2024-06-051-0/+28
| | | | | PiperOrigin-RevId: 640688552 Change-Id: I843e5aed55f90eeb89e007389390d0aba705a3fe
* Demangle preincrement and predecrement, pp_... and mm_....Chris Mihelich2024-06-051-0/+11
| | | | | PiperOrigin-RevId: 640666300 Change-Id: I1dae13f515de5fae3768a54c3808b80083ed63f8
* Demangle throw and rethrow (tw... and tr).Chris Mihelich2024-06-051-0/+11
| | | | | PiperOrigin-RevId: 640648613 Change-Id: Ifb4c385e629e2649da61b2b49c786a320da05fc7
* Demangle ti... and te... expressions (typeid).Chris Mihelich2024-06-051-0/+14
| | | | | PiperOrigin-RevId: 640616282 Change-Id: I2aa94673283d89458886f0634adec87bbf0e57de
* Demangle nx... syntax for noexcept(e) as an expression in a dependent signature.Chris Mihelich2024-06-051-0/+7
| | | | | PiperOrigin-RevId: 640590102 Change-Id: I2641cddd35119062328a197162bb700d8309fc05
* Demangle alignof expressions, at... and az....Chris Mihelich2024-06-051-0/+14
| | | | | PiperOrigin-RevId: 640568425 Change-Id: Id63142ff2e94d7f7ee16367f34a2e4ae81c29b4e
* Demangle C++17 structured bindings, DC...E.Chris Mihelich2024-06-051-0/+9
| | | | | PiperOrigin-RevId: 640547784 Change-Id: Ib230993a358f89258367a1c10271c47be3b724e5
* Demangle modern _ZGR..._ symbols.Chris Mihelich2024-06-051-3/+16
| | | | | PiperOrigin-RevId: 640517212 Change-Id: Ideaaf45d2104a3c82cc9b6807894554335e5b904
* Demangle sizeof...(pack captured from an alias template), sP ... E.Chris Mihelich2024-06-041-0/+10
| | | | | PiperOrigin-RevId: 640314320 Change-Id: I1020879b354c75558d3dba064bb3ea13bd667227
* Demangle types nested under vendor extended types.Chris Mihelich2024-06-041-1/+18
| | | | | PiperOrigin-RevId: 640284003 Change-Id: I3ad2d971383513c7eeb5e3179e50c036cf7aa020
* Demangle il ... E syntax (braced list other than direct-list-initialization).Chris Mihelich2024-06-041-0/+9
| | | | | PiperOrigin-RevId: 640242497 Change-Id: I5574281110ddb27a6ee8d902dae90be6be6c0886
* Avoid signed overflow for Ed <number> _ manglings with large <number>s.Chris Mihelich2024-06-041-0/+6
| | | | | PiperOrigin-RevId: 640213246 Change-Id: Ib0dcf34d52566bfd0e3e9129c4438954aedab8ec
* Demangle constrained auto types (Dk <type-constraint>).Chris Mihelich2024-05-301-3/+13
| | | | | PiperOrigin-RevId: 638831461 Change-Id: Ie30ff381e7d74a40a689b52e66b2e8bb81e0fda6
* Parse <discriminator> more accurately.Chris Mihelich2024-05-301-2/+12
| | | | | PiperOrigin-RevId: 638778076 Change-Id: I97b9bab2d1b6f87d2f449777145f932949d61a38
* Demangle lambdas in class member functions' default arguments.Chris Mihelich2024-05-301-5/+31
| | | | | PiperOrigin-RevId: 638723132 Change-Id: I26ef4dbcb1b965a9d8c2f6092ccb51cf3575ba22
* Demangle unofficial <unresolved-qualifier-level> encodings like S0_IT_E.Chris Mihelich2024-05-291-2/+26
| | | | | PiperOrigin-RevId: 638430573 Change-Id: Ifc4d93bc4ea30951404546436f5397c8fb1bda57
* Demangle Clang's last-resort notation _SUBSTPACK_.Chris Mihelich2024-05-291-1/+20
| | | | | PiperOrigin-RevId: 638283381 Change-Id: Icdd46801f530bd4e8083777c14c78593fd6e111d
* Demangle C++ requires-expressions with parameters (rQ ... E).Chris Mihelich2024-05-291-0/+11
| | | | | PiperOrigin-RevId: 638266358 Change-Id: I8a750a53d5e98bc3ad3b6d36661789d97d6efb0a
* Demangle Clang's encoding of __attribute__((enable_if(condition, "message"))).Chris Mihelich2024-05-291-2/+26
| | | | | PiperOrigin-RevId: 638244694 Change-Id: I80393c6c00f1554057a915e0d71f88b7d899818c
* Demangle static_cast and friends.Chris Mihelich2024-05-291-0/+13
| | | | | PiperOrigin-RevId: 638232699 Change-Id: I134905927ba72eaa5eaf821bb5535942746a3672
* Demangle decltype(expr)::nested_type (NDT...E).Chris Mihelich2024-05-281-1/+2
| | | | | PiperOrigin-RevId: 638094845 Change-Id: I189ce357ccecbe6f341a311e405f9189bf6c0fee
* Demangle C++17 fold-expressions.Chris Mihelich2024-05-281-0/+25
| | | | | PiperOrigin-RevId: 638068943 Change-Id: I7ffe7df900ec4854d8712885d212854b31e79fea
* Demangle thread_local helper functions.Chris Mihelich2024-05-281-4/+23
| | | | | PiperOrigin-RevId: 638039514 Change-Id: I623d87e91ebe0a1166fee175151179b61ef54249
* Demangle lambdas with explicit template arguments (UlTy and similar forms).Chris Mihelich2024-05-281-1/+6
| | | | | PiperOrigin-RevId: 638019038 Change-Id: I96a87e4736677df9d44520e4510e089a27372765
* Demangle &-qualified function types.Chris Mihelich2024-05-281-8/+19
| | | | | PiperOrigin-RevId: 637972935 Change-Id: Ia684f7761b2a98a0d9d5ae096daba34e9140aa22
* Demangle valueless literals LDnE (nullptr) and LA<number>_<type>E ("foo").Chris Mihelich2024-05-281-4/+29
| | | | | 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-281-1/+3
| | | | | PiperOrigin-RevId: 637934582 Change-Id: Ie89b4317b11adba058dd999800e514eff49d4d69
* Demangle C++ requires-expressions without parameters (rq ... E).Chris Mihelich2024-05-241-0/+44
| | | | | PiperOrigin-RevId: 637052089 Change-Id: I8e22c2479749c05d8ca5f9e8eeba480a93da2d18
* Recognize C++ vendor extended expressions (e.g., u9__is_same...E).Chris Mihelich2024-05-241-0/+8
| | | | | PiperOrigin-RevId: 636911360 Change-Id: I525e25b90b91712b95ab7499425de85610ff9115
* Demangle the C++ this pointer (fpT).Chris Mihelich2024-05-231-3/+19
| | | | | PiperOrigin-RevId: 636695970 Change-Id: I22d6f13271ab965563f1f575d9d7ba0ed1af466d
* Stop eating an extra E in ParseTemplateArg for some L<type><value>E literals.Chris Mihelich2024-05-231-4/+4
| | | | | PiperOrigin-RevId: 636682763 Change-Id: I9e5fd6827cb780c288ff5af54643ee4fbbaca6d5
* Demangle C++ direct-list-initialization (T{1, 2, 3}, tl ... E).Chris Mihelich2024-05-231-0/+42
| | | | | PiperOrigin-RevId: 636649618 Change-Id: I73a0be3defa438daf0e9db5c34c0e2feb0e52b69
* Demangle the C++ spaceship operator (ss, operator<=>).Chris Mihelich2024-05-231-0/+1
| | | | | PiperOrigin-RevId: 636634618 Change-Id: I812115d2a33dc71446a14deadc6af019eef6dfd7
* Demangle C++ sZ encodings (sizeof...(pack)).Chris Mihelich2024-05-231-17/+44
| | | | | PiperOrigin-RevId: 636615840 Change-Id: I34f584ea0c6603a0781e874d683b516de94c6928
* Demangle C++ so ... E encodings (typically array-to-pointer decay).Chris Mihelich2024-05-231-0/+21
| | | | | PiperOrigin-RevId: 636566755 Change-Id: I2c8c1f19a67a7a487dd2bbb46c17f9fb4e2b037c
* Recognize some simple Rust mangled names in Demangle.Chris Mihelich2024-05-061-0/+6
| | | | | PiperOrigin-RevId: 631018414 Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
* `demangle`: Parse template template and C++20 lambda template param ↵Dino Radakovic2024-02-151-2/+18
| | | | | | | | | substitutions These were described in https://github.com/itanium-cxx-abi/cxx-abi/pull/85 and implemented by LLVM. PiperOrigin-RevId: 607555558 Change-Id: I9991ac88c1fcf63b25b93d93977a83ca343cdb5d
* `demangle`: Parse optional single template argument for built-in typesDino Radakovic2024-02-131-6/+13
| | | | | | | The optional single template argument for built-in types is not documented in LLVM's comments that list the grammar, but it is [intentionally implemented](https://github.com/llvm/llvm-project/commit/4bc4d51c18d5c087dfbdad1753c84bba8dbf3be0). PiperOrigin-RevId: 606843797 Change-Id: Ib5ef1983812e9ea68a39fe64b87b6ad6ce81b93c
* `demangle`: Add complexity guard to `ParseQRequiresExpr`Dino Radakovic2024-02-131-0/+2
| | | | | | | | This function copies the parser's state onto the stack in order to perform backtracking. Adding a complexity guard will ensure that it fails gracefully, instead of contributing to excessive consumption of stack space. PiperOrigin-RevId: 606720511 Change-Id: I2f6f03e5f8bc4cc571a4159ecfc2af6f3e00fa68
* `demangle`: Parse `requires` clauses on template params, before function ↵Dino Radakovic2024-02-091-17/+23
| | | | | | | | | | | | | | | | return type For example, this covers the following: ``` template <typename T> requires std::integral<T> int foo(); ``` Refactor parsing of `Q <requires-clause expr>` into a single function that performs backtracking to avoid reimplementing `ParseTemplateArgs` in terms of nested if-else blocks. PiperOrigin-RevId: 605785418 Change-Id: I118998a75e050dcf46af125b613b690312fd3cbe
* `demangle`: Parse `requires` clauses on functionsDino Radakovic2024-02-091-8/+42
| | | | | | | These clauses show up in other places that end up mangled as parts of function signatures (e.g. on template struct params). We'll handle those in a follow-up. PiperOrigin-RevId: 605694497 Change-Id: I1bfe4c0cfaa739fdd24548b1547482410c92b5a7
* `demangle`: Parse C++20-compatible template param declarations, except those ↵Dino Radakovic2024-02-081-5/+56
| | | | | | | | | with `requires` expressions Support for `requires` expressions will be added in a follow-up. PiperOrigin-RevId: 605418370 Change-Id: I2c84cdf0c4599e36683b3c94dcbb173ab4fc3ee8