From e4fa6c95aca1555167f867a0205cbc99caa2ce09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mi=C4=85sko?= <tomasz.miasko@gmail.com> Date: Sat, 22 May 2021 11:36:53 +0200 Subject: [PATCH] [Demangle][Rust] Parse references Reviewed By: dblaikie Part of https://reviews.llvm.org/D102580 --- llvm/lib/Demangle/RustDemangle.cpp | 10 ++++++++++ llvm/test/Demangle/rust.test | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/llvm/lib/Demangle/RustDemangle.cpp b/llvm/lib/Demangle/RustDemangle.cpp index 9a4180feb227..8d43b6efcab0 100644 --- a/llvm/lib/Demangle/RustDemangle.cpp +++ b/llvm/lib/Demangle/RustDemangle.cpp @@ -454,6 +454,16 @@ void Demangler::demangleType() { print(")"); break; } + case 'R': + print("&"); + // FIXME demangle [<lifetime>]. + demangleType(); + break; + case 'Q': + print("&mut "); + // FIXME demangle [<lifetime>]. + demangleType(); + break; case 'P': print("*const "); demangleType(); diff --git a/llvm/test/Demangle/rust.test b/llvm/test/Demangle/rust.test index 46eea4dfdc42..0634f451099b 100644 --- a/llvm/test/Demangle/rust.test +++ b/llvm/test/Demangle/rust.test @@ -175,6 +175,12 @@ CHECK: types::<(_, _)> CHECK: types::<(_, _, _)> _RIC5typesTpppEE +CHECK: types::<&_> + _RIC5typesRpE + +CHECK: types::<&mut _> + _RIC5typesQpE + CHECK: types::<*const _> _RIC5typesPpE