summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src
diff options
context:
space:
mode:
authorErik Pilkington <erik.pilkington@gmail.com>2019-01-17 21:37:36 +0000
committerErik Pilkington <erik.pilkington@gmail.com>2019-01-17 21:37:36 +0000
commit75a4d7644e651b829611945ad73d1b1d3ef29c5f (patch)
treefbc9d91b3efd5ce9824152fa97811a22a5eda351 /libcxxabi/src
parent32a014d0483e821566e42d68e270f53456b9b1df (diff)
downloadbcm5719-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.h4
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;
OpenPOWER on IntegriCloud