aboutsummaryrefslogtreecommitdiff
path: root/absl/debugging/internal/demangle.cc
diff options
context:
space:
mode:
authorChris Mihelich <cmihelic@google.com>2024-05-28 09:57:42 -0700
committerCopybara-Service <copybara-worker@google.com>2024-05-28 09:58:28 -0700
commit90d49cbad8c503418a10056e2d50c93caa0d142b (patch)
tree6c57a415cea99f2505397546042c28478950a589 /absl/debugging/internal/demangle.cc
parentca81d343946a1775860791f77cde565b43f92cdd (diff)
downloadabseil-90d49cbad8c503418a10056e2d50c93caa0d142b.tar.gz
abseil-90d49cbad8c503418a10056e2d50c93caa0d142b.tar.bz2
abseil-90d49cbad8c503418a10056e2d50c93caa0d142b.zip
Correctly demangle the <unresolved-name> at the end of dt and pt (x.y, x->y).
PiperOrigin-RevId: 637934582 Change-Id: Ie89b4317b11adba058dd999800e514eff49d4d69
Diffstat (limited to 'absl/debugging/internal/demangle.cc')
-rw-r--r--absl/debugging/internal/demangle.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/absl/debugging/internal/demangle.cc b/absl/debugging/internal/demangle.cc
index cfcd64b6..c27cc01a 100644
--- a/absl/debugging/internal/demangle.cc
+++ b/absl/debugging/internal/demangle.cc
@@ -1956,8 +1956,10 @@ static bool ParseExpression(State *state) {
state->parse_state = copy;
// Object and pointer member access expressions.
+ //
+ // <expression> ::= (dt | pt) <expression> <unresolved-name>
if ((ParseTwoCharToken(state, "dt") || ParseTwoCharToken(state, "pt")) &&
- ParseExpression(state) && ParseType(state)) {
+ ParseExpression(state) && ParseUnresolvedName(state)) {
return true;
}
state->parse_state = copy;