diff options
author | Erik Pilkington <erik.pilkington@gmail.com> | 2019-01-17 21:37:36 +0000 |
---|---|---|
committer | Erik Pilkington <erik.pilkington@gmail.com> | 2019-01-17 21:37:36 +0000 |
commit | 75a4d7644e651b829611945ad73d1b1d3ef29c5f (patch) | |
tree | fbc9d91b3efd5ce9824152fa97811a22a5eda351 /libcxxabi/src | |
parent | 32a014d0483e821566e42d68e270f53456b9b1df (diff) | |
download | bcm5719-llvm-75a4d7644e651b829611945ad73d1b1d3ef29c5f.tar.gz bcm5719-llvm-75a4d7644e651b829611945ad73d1b1d3ef29c5f.zip |
[demangler] Ignore leading underscores if present
On MacOS, symbols start with a leading underscore, so just parse and
ignore it if present.
llvm-svn: 351481
Diffstat (limited to 'libcxxabi/src')
-rw-r--r-- | libcxxabi/src/demangle/ItaniumDemangle.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h index 53107c9c8d9..9a54ff5d80d 100644 --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -5143,7 +5143,7 @@ AbstractManglingParser<Derived, Alloc>::parseTemplateArgs(bool TagTemplates) { // extension ::= ___Z <encoding> _block_invoke_<decimal-digit>+ template <typename Derived, typename Alloc> Node *AbstractManglingParser<Derived, Alloc>::parse() { - if (consumeIf("_Z")) { + if (consumeIf("_Z") || consumeIf("__Z")) { Node *Encoding = getDerived().parseEncoding(); if (Encoding == nullptr) return nullptr; @@ -5156,7 +5156,7 @@ Node *AbstractManglingParser<Derived, Alloc>::parse() { return Encoding; } - if (consumeIf("___Z")) { + if (consumeIf("___Z") || consumeIf("____Z")) { Node *Encoding = getDerived().parseEncoding(); if (Encoding == nullptr || !consumeIf("_block_invoke")) return nullptr; |