diff options
author | Chris Mihelich <cmihelic@google.com> | 2024-05-06 05:56:26 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-05-06 05:57:30 -0700 |
commit | a28ee5b51c9ea41707d9a5d2d358ad77850264c4 (patch) | |
tree | 98b00df448483279f43bd48d015067e8dbdbcb21 /absl/debugging/internal/demangle.cc | |
parent | c1e1b47d989978cde8c5a2a219df425b785a0c47 (diff) | |
download | abseil-a28ee5b51c9ea41707d9a5d2d358ad77850264c4.tar.gz abseil-a28ee5b51c9ea41707d9a5d2d358ad77850264c4.tar.bz2 abseil-a28ee5b51c9ea41707d9a5d2d358ad77850264c4.zip |
Recognize some simple Rust mangled names in Demangle.
PiperOrigin-RevId: 631018414
Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
Diffstat (limited to 'absl/debugging/internal/demangle.cc')
-rw-r--r-- | absl/debugging/internal/demangle.cc | 6 |
1 files changed, 6 insertions, 0 deletions
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 <cstddef> #include <cstdint> #include <cstdio> #include <cstdlib> @@ -26,6 +27,7 @@ #include <string> #include "absl/base/config.h" +#include "absl/debugging/internal/demangle_rust.h" #if ABSL_INTERNAL_HAS_CXA_DEMANGLE #include <cxxabi.h> @@ -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) && |