[PATCH] D102580: [Demangle][Rust] Parse pointer types

Tomasz Miąsko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 17 08:05:06 PDT 2021


tmiasko updated this revision to Diff 345885.
tmiasko marked an inline comment as done.
tmiasko added a comment.

Use a placeholder type in tests.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102580/new/

https://reviews.llvm.org/D102580

Files:
  llvm/lib/Demangle/RustDemangle.cpp
  llvm/test/Demangle/rust.test


Index: llvm/test/Demangle/rust.test
===================================================================
--- llvm/test/Demangle/rust.test
+++ llvm/test/Demangle/rust.test
@@ -175,6 +175,18 @@
 CHECK: types::<(_, _, _)>
        _RIC5typesTpppEE
 
+CHECK: types::<&_>
+       _RIC5typesRpE
+
+CHECK: types::<&mut _>
+       _RIC5typesQpE
+
+CHECK: types::<*const _>
+       _RIC5typesPpE
+
+CHECK: types::<*mut _>
+       _RIC5typesOpE
+
 ; Integer constants. Test value demangling.
 
 CHECK: integer::<0>
Index: llvm/lib/Demangle/RustDemangle.cpp
===================================================================
--- llvm/lib/Demangle/RustDemangle.cpp
+++ llvm/lib/Demangle/RustDemangle.cpp
@@ -454,6 +454,24 @@
     print(")");
     break;
   }
+  case 'R':
+    print("&");
+    // FIXME demangle [<lifetime>].
+    demangleType();
+    break;
+  case 'Q':
+    print("&mut ");
+    // FIXME demangle [<lifetime>].
+    demangleType();
+    break;
+  case 'P':
+    print("*const ");
+    demangleType();
+    break;
+  case 'O':
+    print("*mut ");
+    demangleType();
+    break;
   default:
     Position = Start;
     demanglePath(InType::Yes);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102580.345885.patch
Type: text/x-patch
Size: 1153 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210517/19e8354d/attachment.bin>


More information about the llvm-commits mailing list