Commit Graph

211 Commits

Author SHA1 Message Date
Chris Mihelich
4b9a55fd27 Decode Rust Punycode when it's not too long.
PiperOrigin-RevId: 647340145
Change-Id: I4b0076595dbda1f81ffdc32adad2dc1e35cb9e04
2024-06-27 09:13:53 -07:00
Chris Mihelich
16452e1418 Decoder for Rust-style Punycode encodings of bounded length.
PiperOrigin-RevId: 647093624
Change-Id: Ic76bfa4aa8fb616cb23095ce7bfa30c3812dcb21
2024-06-26 15:14:45 -07:00
Chris Mihelich
f04e489056 Drop std:: qualification from integer types like uint64_t.
PiperOrigin-RevId: 643418422
Change-Id: Ib16cfef8ddedc8366df49ca75ab02eb60af08f26
2024-06-14 12:12:29 -07:00
Chris Mihelich
7c17d8bc53 If so configured, report which part of a C++ mangled name didn't parse.
PiperOrigin-RevId: 642757934
Change-Id: I6dffe81e5173201b80a107b951fe1c69b20972f5
2024-06-12 15:28:39 -07:00
Chris Mihelich
fc7612086f Sequence of 1-to-4 values with prefix sum to support Punycode decoding.
PiperOrigin-RevId: 642696557
Change-Id: Ia6b8e174ddb55e44bd082bf0d81d2f9c53c94016
2024-06-12 12:21:10 -07:00
Chris Mihelich
d30298a1b6 UTF-8 encoding library to support Rust Punycode decoding.
PiperOrigin-RevId: 641983507
Change-Id: Iad7933884aef6bfd90d159c049a1d698d19456c6
2024-06-10 12:18:15 -07:00
Chris Mihelich
5195c35dc4 Demangle template parameter object names, TA <template-arg>.
PiperOrigin-RevId: 641893938
Change-Id: I8a21e322c9cf1d5dab7477af5367aad134fbf2ab
2024-06-10 07:26:46 -07:00
Chris Mihelich
2f61aed18c Demangle sr St <simple-id> <simple-id>, a dubious encoding found in the wild.
PiperOrigin-RevId: 641418373
Change-Id: I2999228cccfd18a000725b938a692c0c9004867c
2024-06-07 19:21:12 -07:00
Chris Mihelich
696b32788c Try not to lose easy type combinators in S::operator const int*() and the like.
PiperOrigin-RevId: 641411131
Change-Id: Icba1307cccb8957e09f087a7b544f7fe8bfd8333
2024-06-07 18:27:59 -07:00
Chris Mihelich
f875817b18 Demangle fixed-width floating-point types, DF....
PiperOrigin-RevId: 641400156
Change-Id: Ib9f6e4f6c4bbd6d3234dfd322d1d14a59b08d88a
2024-06-07 17:20:02 -07:00
Chris Mihelich
3941dc4183 Demangle _BitInt types DB..., DU....
PiperOrigin-RevId: 641360162
Change-Id: Iabce55eb61feaa4dc099093a6496e26ab66906fa
2024-06-07 14:34:47 -07:00
Chris Mihelich
9140cc7b19 Demangle complex floating-point literals.
PiperOrigin-RevId: 641324572
Change-Id: Ie266da9c8c702e62b89352d64870fb41d2ea76c3
2024-06-07 12:28:06 -07:00
Chris Mihelich
c6000317f1 Demangle <extended-qualifier> in types, e.g., U5AS128 for address_space(128).
PiperOrigin-RevId: 641310017
Change-Id: I0f10a2a1965e842db4efda455e0cdfbeb6656fa5
2024-06-07 11:35:12 -07:00
Chris Mihelich
c586e8d88a Demangle operator co_await (aw).
PiperOrigin-RevId: 641291188
Change-Id: I02f6bae62b05c8964a3b6e8f78299061ce57e01a
2024-06-07 10:32:10 -07:00
Chris Mihelich
61e721f41f Demangle fully general vendor extended types (any <template-args>).
PiperOrigin-RevId: 641271471
Change-Id: Ibeedb4dea3b961955d073f048d293b19aa917792
2024-06-07 09:26:29 -07:00
Chris Mihelich
59d0a7d141 Demangle transaction-safety notations GTt and Dx.
PiperOrigin-RevId: 641249074
Change-Id: Id410ce6c3b7a9a2b10aedf9c70ec65d3e37af06d
2024-06-07 07:52:56 -07:00
Chris Mihelich
6e607350cc Demangle C++11 user-defined literal operator functions.
PiperOrigin-RevId: 641046309
Change-Id: Iaa2564a60035421969c2cd6074a457980083cbd2
2024-06-06 15:48:15 -07:00
Chris Mihelich
2a40eb6086 Demangle C++20 constrained friend names, F (<source-name> | <operator-name>).
PiperOrigin-RevId: 641011959
Change-Id: I844d4eb99a9f9da160bb53e491dee753a70750df
2024-06-06 13:58:39 -07:00
Chris Mihelich
0cd50e6ee3 Demangle dependent GNU vector extension types, Dv <expression> _ <type>.
PiperOrigin-RevId: 640993627
Change-Id: I84073099907a3634eca4b12cd2e633908465907a
2024-06-06 13:01:45 -07:00
Chris Mihelich
586a541d2b Demangle elaborated type names, (Ts | Tu | Te) <name>.
PiperOrigin-RevId: 640972027
Change-Id: I810aaa10e7761686d03854abab3198be8b2868cf
2024-06-06 11:49:03 -07:00
Chris Mihelich
ed34153e0d Demangle delete-expressions with the global-scope operator, gs (dl | da) ....
PiperOrigin-RevId: 640928445
Change-Id: I547f194ebb0a4482ecec627a7a03bab60e8e1c0b
2024-06-06 09:43:54 -07:00
Chris Mihelich
ffa1e4a52a Demangle new-expressions with braced-init-lists.
PiperOrigin-RevId: 640908672
Change-Id: I85bed6e7d79b24b693007c08acde8e28e3e1429c
2024-06-06 08:35:28 -07:00
Chris Mihelich
e7a5d7ace0 Demangle array new-expressions, [gs] na ....
PiperOrigin-RevId: 640891321
Change-Id: I2bc0f6b907d8af88446375409fb523158ae0e001
2024-06-06 07:31:13 -07:00
Chris Mihelich
54e1f14c6f Demangle object new-expressions, [gs] nw ....
PiperOrigin-RevId: 640688552
Change-Id: I843e5aed55f90eeb89e007389390d0aba705a3fe
2024-06-05 16:34:48 -07:00
Chris Mihelich
fe43a4cb56 Demangle preincrement and predecrement, pp_... and mm_....
PiperOrigin-RevId: 640666300
Change-Id: I1dae13f515de5fae3768a54c3808b80083ed63f8
2024-06-05 15:20:33 -07:00
Chris Mihelich
aad792d4cf Demangle throw and rethrow (tw... and tr).
PiperOrigin-RevId: 640648613
Change-Id: Ifb4c385e629e2649da61b2b49c786a320da05fc7
2024-06-05 14:23:44 -07:00
Chris Mihelich
49e0099abc Demangle ti... and te... expressions (typeid).
PiperOrigin-RevId: 640616282
Change-Id: I2aa94673283d89458886f0634adec87bbf0e57de
2024-06-05 12:45:11 -07:00
Chris Mihelich
8ece6dc435 Demangle nx... syntax for noexcept(e) as an expression in a dependent signature.
PiperOrigin-RevId: 640590102
Change-Id: I2641cddd35119062328a197162bb700d8309fc05
2024-06-05 11:27:28 -07:00
Chris Mihelich
699fcf35d2 Demangle alignof expressions, at... and az....
PiperOrigin-RevId: 640568425
Change-Id: Id63142ff2e94d7f7ee16367f34a2e4ae81c29b4e
2024-06-05 10:24:42 -07:00
Chris Mihelich
8322d3abcc Demangle C++17 structured bindings, DC...E.
PiperOrigin-RevId: 640547784
Change-Id: Ib230993a358f89258367a1c10271c47be3b724e5
2024-06-05 09:17:46 -07:00
Chris Mihelich
cba68bb93b Demangle modern _ZGR..._ symbols.
PiperOrigin-RevId: 640517212
Change-Id: Ideaaf45d2104a3c82cc9b6807894554335e5b904
2024-06-05 07:22:24 -07:00
Chris Mihelich
8777d44089 Demangle sizeof...(pack captured from an alias template), sP ... E.
PiperOrigin-RevId: 640314320
Change-Id: I1020879b354c75558d3dba064bb3ea13bd667227
2024-06-04 16:07:33 -07:00
Chris Mihelich
d8e17c0091 Demangle types nested under vendor extended types.
PiperOrigin-RevId: 640284003
Change-Id: I3ad2d971383513c7eeb5e3179e50c036cf7aa020
2024-06-04 14:29:31 -07:00
Chris Mihelich
36d1644be1 Demangle il ... E syntax (braced list other than direct-list-initialization).
PiperOrigin-RevId: 640242497
Change-Id: I5574281110ddb27a6ee8d902dae90be6be6c0886
2024-06-04 12:18:33 -07:00
Chris Mihelich
b0e72168e5 Avoid signed overflow for Ed <number> _ manglings with large <number>s.
PiperOrigin-RevId: 640213246
Change-Id: Ib0dcf34d52566bfd0e3e9129c4438954aedab8ec
2024-06-04 11:02:24 -07:00
Chris Mihelich
9605d816c5 Demangle constrained auto types (Dk <type-constraint>).
PiperOrigin-RevId: 638831461
Change-Id: Ie30ff381e7d74a40a689b52e66b2e8bb81e0fda6
2024-05-30 16:57:28 -07:00
Chris Mihelich
9a2da1a407 Parse <discriminator> more accurately.
PiperOrigin-RevId: 638778076
Change-Id: I97b9bab2d1b6f87d2f449777145f932949d61a38
2024-05-30 14:11:24 -07:00
Chris Mihelich
c8671e7542 Demangle lambdas in class member functions' default arguments.
PiperOrigin-RevId: 638723132
Change-Id: I26ef4dbcb1b965a9d8c2f6092ccb51cf3575ba22
2024-05-30 11:30:17 -07:00
Chris Mihelich
36c2a14c59 Demangle unofficial <unresolved-qualifier-level> encodings like S0_IT_E.
PiperOrigin-RevId: 638430573
Change-Id: Ifc4d93bc4ea30951404546436f5397c8fb1bda57
2024-05-29 15:24:50 -07:00
Chris Mihelich
64457068f2 Demangle Clang's last-resort notation _SUBSTPACK_.
PiperOrigin-RevId: 638283381
Change-Id: Icdd46801f530bd4e8083777c14c78593fd6e111d
2024-05-29 07:51:59 -07:00
Chris Mihelich
77d0ac71e4 Demangle C++ requires-expressions with parameters (rQ ... E).
PiperOrigin-RevId: 638266358
Change-Id: I8a750a53d5e98bc3ad3b6d36661789d97d6efb0a
2024-05-29 06:43:14 -07:00
Chris Mihelich
abc0f8d109 Demangle Clang's encoding of __attribute__((enable_if(condition, "message"))).
PiperOrigin-RevId: 638244694
Change-Id: I80393c6c00f1554057a915e0d71f88b7d899818c
2024-05-29 05:06:18 -07:00
Chris Mihelich
1f5a9cdc43 Demangle static_cast and friends.
PiperOrigin-RevId: 638232699
Change-Id: I134905927ba72eaa5eaf821bb5535942746a3672
2024-05-29 04:13:24 -07:00
Chris Mihelich
457fdbf960 Demangle decltype(expr)::nested_type (NDT...E).
PiperOrigin-RevId: 638094845
Change-Id: I189ce357ccecbe6f341a311e405f9189bf6c0fee
2024-05-28 18:21:12 -07:00
Chris Mihelich
cf071bb327 Demangle C++17 fold-expressions.
PiperOrigin-RevId: 638068943
Change-Id: I7ffe7df900ec4854d8712885d212854b31e79fea
2024-05-28 16:45:10 -07:00
Chris Mihelich
44e077d666 Demangle thread_local helper functions.
PiperOrigin-RevId: 638039514
Change-Id: I623d87e91ebe0a1166fee175151179b61ef54249
2024-05-28 15:16:44 -07:00
Chris Mihelich
3ef92c6f37 Demangle lambdas with explicit template arguments (UlTy and similar forms).
PiperOrigin-RevId: 638019038
Change-Id: I96a87e4736677df9d44520e4510e089a27372765
2024-05-28 14:11:10 -07:00
Chris Mihelich
6ec17dc636 Demangle &-qualified function types.
PiperOrigin-RevId: 637972935
Change-Id: Ia684f7761b2a98a0d9d5ae096daba34e9140aa22
2024-05-28 11:45:50 -07:00
Chris Mihelich
4a861bb14b Demangle valueless literals LDnE (nullptr) and LA<number>_<type>E ("foo").
PiperOrigin-RevId: 637958502
Change-Id: If81eba9729c16b5d5ac7187cf74738d8aaace367
2024-05-28 11:04:54 -07:00
Chris Mihelich
90d49cbad8 Correctly demangle the <unresolved-name> at the end of dt and pt (x.y, x->y).
PiperOrigin-RevId: 637934582
Change-Id: Ie89b4317b11adba058dd999800e514eff49d4d69
2024-05-28 09:58:28 -07:00