aboutsummaryrefslogtreecommitdiff
path: root/absl/debugging/internal/demangle.cc
diff options
context:
space:
mode:
authorChris Mihelich <cmihelic@google.com>2024-05-23 14:45:31 -0700
committerCopybara-Service <copybara-worker@google.com>2024-05-23 14:46:26 -0700
commitb3cd02500c67749ee7441987cb7d37c89aead79b (patch)
tree3e815489d9dbedac4a55ecd9f7f39b150cf934e4 /absl/debugging/internal/demangle.cc
parenta7d70c872aaf5bfa8efcdb2814e914a7eabbe7d5 (diff)
downloadabseil-b3cd02500c67749ee7441987cb7d37c89aead79b.tar.gz
abseil-b3cd02500c67749ee7441987cb7d37c89aead79b.tar.bz2
abseil-b3cd02500c67749ee7441987cb7d37c89aead79b.zip
Stop eating an extra E in ParseTemplateArg for some L<type><value>E literals.
PiperOrigin-RevId: 636682763 Change-Id: I9e5fd6827cb780c288ff5af54643ee4fbbaca6d5
Diffstat (limited to 'absl/debugging/internal/demangle.cc')
-rw-r--r--absl/debugging/internal/demangle.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/absl/debugging/internal/demangle.cc b/absl/debugging/internal/demangle.cc
index e9c8d176..6d24f8ed 100644
--- a/absl/debugging/internal/demangle.cc
+++ b/absl/debugging/internal/demangle.cc
@@ -585,7 +585,7 @@ static bool ParseFunctionParam(State* state);
static bool ParseBracedExpression(State *state);
static bool ParseExpression(State *state);
static bool ParseExprPrimary(State *state);
-static bool ParseExprCastValue(State *state);
+static bool ParseExprCastValueAndTrailingE(State *state);
static bool ParseQRequiresClauseExpr(State *state);
static bool ParseLocalName(State *state);
static bool ParseLocalNameSuffix(State *state);
@@ -1633,7 +1633,7 @@ static bool ParseTemplateArg(State *state) {
// ::= L <source-name> [<template-args>] [<expr-cast-value> E]
if (ParseLocalSourceName(state) && Optional(ParseTemplateArgs(state))) {
copy = state->parse_state;
- if (ParseExprCastValue(state) && ParseOneCharToken(state, 'E')) {
+ if (ParseExprCastValueAndTrailingE(state)) {
return true;
}
state->parse_state = copy;
@@ -2005,7 +2005,7 @@ static bool ParseExprPrimary(State *state) {
// The merged cast production.
if (ParseOneCharToken(state, 'L') && ParseType(state) &&
- ParseExprCastValue(state)) {
+ ParseExprCastValueAndTrailingE(state)) {
return true;
}
state->parse_state = copy;
@@ -2020,7 +2020,7 @@ static bool ParseExprPrimary(State *state) {
}
// <number> or <float>, followed by 'E', as described above ParseExprPrimary.
-static bool ParseExprCastValue(State *state) {
+static bool ParseExprCastValueAndTrailingE(State *state) {
ComplexityGuard guard(state);
if (guard.IsTooComplex()) return false;
// We have to be able to backtrack after accepting a number because we could