aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2018-08-29 04:12:44 +0000
committerZachary Turner <zturner@google.com>2018-08-29 04:12:44 +0000
commitb2fef1a0b0c2193bd9aba957b8050098728c5405 (patch)
tree62ed87d5b438a6399586fdeb2af2a665c9e06b6f /llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
parent38d2edd60dc694abf5dbf7feaaa65f7142e973f5 (diff)
downloadllvm-b2fef1a0b0c2193bd9aba957b8050098728c5405.zip
llvm-b2fef1a0b0c2193bd9aba957b8050098728c5405.tar.gz
llvm-b2fef1a0b0c2193bd9aba957b8050098728c5405.tar.bz2
Add support for various C++14 demanglings.
Mostly this includes <auto> and <decltype-auto> return values. Additionally, this fixes a fairly obscure back-referencing bug that was encountered in one of the C++14 tests, which is that if you have something like Foo<&bar, &bar> then the `bar` forms a backreference. llvm-svn: 340896
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangleNodes.cpp')
-rw-r--r--llvm/lib/Demangle/MicrosoftDemangleNodes.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp b/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
index 9610981..9d1aa1a 100644
--- a/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
+++ b/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
@@ -565,9 +565,10 @@ void VariableSymbolNode::output(OutputStream &OS, OutputFlags Flags) const {
Type->outputPost(OS, Flags);
}
-void CustomNode::output(OutputStream &OS, OutputFlags Flags) const {
- OS << Name;
+void CustomTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const {
+ Identifier->output(OS, Flags);
}
+void CustomTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const {}
void QualifiedNameNode::output(OutputStream &OS, OutputFlags Flags) const {
Components->output(OS, Flags, "::");