OSDN Git Service

[demangle] Vendor extended types shouldn't be considered substitution candidates
authorErik Pilkington <erik.pilkington@gmail.com>
Mon, 10 Jun 2019 21:02:39 +0000 (21:02 +0000)
committerErik Pilkington <erik.pilkington@gmail.com>
Mon, 10 Jun 2019 21:02:39 +0000 (21:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362983 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Demangle/ItaniumDemangle.h

index 4dca309..a237cf7 100644 (file)
@@ -3576,7 +3576,11 @@ Node *AbstractManglingParser<Derived, Alloc>::parseType() {
     StringView Res = parseBareSourceName();
     if (Res.empty())
       return nullptr;
-    return make<NameType>(Res);
+    // Typically, <builtin-type>s are not considered substitution candidates,
+    // but the exception to that exception is vendor extended types (Itanium C++
+    // ABI 5.9.1).
+    Result = make<NameType>(Res);
+    break;
   }
   case 'D':
     switch (look(1)) {