summaryrefslogtreecommitdiff
path: root/libcxxabi/src
diff options
context:
space:
mode:
authorgbreynoo <Owen.Reynolds@sony.com>2022-04-28 15:55:26 +0100
committergbreynoo <Owen.Reynolds@sony.com>2022-04-28 15:55:26 +0100
commit5420834aadbd271b3773f53fbbd58e9437952616 (patch)
treec431f5502fd4f444713fc31c335541f4bcdf342a /libcxxabi/src
parent451c5578b834fe3aca4e495aaf6a2f32639e86a6 (diff)
downloadllvm-5420834aadbd271b3773f53fbbd58e9437952616.tar.gz
[demangler] Fix demangling a template argument which happens to be a null pointer
As seen in https://github.com/llvm/llvm-project/issues/51854 llvm-cxxfilt was having trouble demangling the case "_Z1fIDnLDn0EEvv". We handled the "LDNE" case and "LPi0E" but not "LDn0E". This change adds that handling. Differential Revision: https://reviews.llvm.org/D124010
Diffstat (limited to 'libcxxabi/src')
-rw-r--r--libcxxabi/src/demangle/ItaniumDemangle.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h
index 4f72bdd4cf0c..a504b06fc7e0 100644
--- a/libcxxabi/src/demangle/ItaniumDemangle.h
+++ b/libcxxabi/src/demangle/ItaniumDemangle.h
@@ -4340,7 +4340,7 @@ Node *AbstractManglingParser<Derived, Alloc>::parseExprPrimary() {
return nullptr;
}
case 'D':
- if (consumeIf("DnE"))
+ if (consumeIf("Dn") && (consumeIf('0'), consumeIf('E')))
return make<NameType>("nullptr");
return nullptr;
case 'T':