From 569feb3a52a8c689a399364d582109c37ce56946 Mon Sep 17 00:00:00 2001 From: Erik Pilkington Date: Mon, 10 Jun 2019 21:02:39 +0000 Subject: [PATCH] [demangle] Vendor extended types shouldn't be considered substitution candidates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362983 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Demangle/ItaniumDemangle.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/llvm/Demangle/ItaniumDemangle.h b/include/llvm/Demangle/ItaniumDemangle.h index 4dca309e3cb..a237cf724df 100644 --- a/include/llvm/Demangle/ItaniumDemangle.h +++ b/include/llvm/Demangle/ItaniumDemangle.h @@ -3576,7 +3576,11 @@ Node *AbstractManglingParser::parseType() { StringView Res = parseBareSourceName(); if (Res.empty()) return nullptr; - return make(Res); + // Typically, s are not considered substitution candidates, + // but the exception to that exception is vendor extended types (Itanium C++ + // ABI 5.9.1). + Result = make(Res); + break; } case 'D': switch (look(1)) { -- 2.11.0