From a28ee5b51c9ea41707d9a5d2d358ad77850264c4 Mon Sep 17 00:00:00 2001 From: Chris Mihelich Date: Mon, 6 May 2024 05:56:26 -0700 Subject: Recognize some simple Rust mangled names in Demangle. PiperOrigin-RevId: 631018414 Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634 --- absl/debugging/internal/demangle.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'absl/debugging/internal/demangle.cc') diff --git a/absl/debugging/internal/demangle.cc b/absl/debugging/internal/demangle.cc index 82420c8b..71d4eb0a 100644 --- a/absl/debugging/internal/demangle.cc +++ b/absl/debugging/internal/demangle.cc @@ -19,6 +19,7 @@ #include "absl/debugging/internal/demangle.h" +#include #include #include #include @@ -26,6 +27,7 @@ #include #include "absl/base/config.h" +#include "absl/debugging/internal/demangle_rust.h" #if ABSL_INTERNAL_HAS_CXA_DEMANGLE #include @@ -2110,6 +2112,10 @@ static bool Overflowed(const State *state) { // The demangler entry point. bool Demangle(const char* mangled, char* out, size_t out_size) { + if (mangled[0] == '_' && mangled[1] == 'R') { + return DemangleRustSymbolEncoding(mangled, out, out_size); + } + State state; InitState(&state, mangled, out, out_size); return ParseTopLevelMangledName(&state) && !Overflowed(&state) && -- cgit v1.2.3