diff options
| -rw-r--r-- | libcxxabi/src/demangle/ItaniumDemangle.h | 4 | ||||
| -rw-r--r-- | libcxxabi/test/DemangleTestCases.inc | 1 | ||||
| -rw-r--r-- | llvm/include/llvm/Demangle/ItaniumDemangle.h | 4 | ||||
| -rw-r--r-- | llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc | 1 |
4 files changed, 8 insertions, 2 deletions
diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h index 4e7f92dd1991..b306b2013445 100644 --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -4468,7 +4468,9 @@ Node *AbstractManglingParser<Derived, Alloc>::parseType() { return nullptr; if (!consumeIf('_')) return nullptr; - return make<BitIntType>(Size, Signed); + // The front end expects this to be available for Substitution + Result = make<BitIntType>(Size, Signed); + break; } // ::= Di # char32_t case 'i': diff --git a/libcxxabi/test/DemangleTestCases.inc b/libcxxabi/test/DemangleTestCases.inc index 1e3f7459deaa..2721d2aa5504 100644 --- a/libcxxabi/test/DemangleTestCases.inc +++ b/libcxxabi/test/DemangleTestCases.inc @@ -6,6 +6,7 @@ {"_Z1fDU10_", "f(unsigned _BitInt(10))"}, {"_Z1fIfEvDUstPT__", "void f<float>(unsigned _BitInt(sizeof (float*)))"}, {"_Z1fIiEvDBstPT__", "void f<int>(_BitInt(sizeof (int*)))"}, +{"_Z6myfuncRDB8_S0_", "myfunc(_BitInt(8)&, _BitInt(8)&)"}, {"_Z4testI1A1BE1Cv", "C test<A, B>()"}, {"_Z4testI1A1BET0_T_S3_", "B test<A, B>(A, A)"}, {"_ZN1SgtEi", "S::operator>(int)"}, diff --git a/llvm/include/llvm/Demangle/ItaniumDemangle.h b/llvm/include/llvm/Demangle/ItaniumDemangle.h index f4569850b093..5533652736dc 100644 --- a/llvm/include/llvm/Demangle/ItaniumDemangle.h +++ b/llvm/include/llvm/Demangle/ItaniumDemangle.h @@ -4468,7 +4468,9 @@ Node *AbstractManglingParser<Derived, Alloc>::parseType() { return nullptr; if (!consumeIf('_')) return nullptr; - return make<BitIntType>(Size, Signed); + // The front end expects this to be available for Substitution + Result = make<BitIntType>(Size, Signed); + break; } // ::= Di # char32_t case 'i': diff --git a/llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc b/llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc index 1e3f7459deaa..2721d2aa5504 100644 --- a/llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc +++ b/llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc @@ -6,6 +6,7 @@ {"_Z1fDU10_", "f(unsigned _BitInt(10))"}, {"_Z1fIfEvDUstPT__", "void f<float>(unsigned _BitInt(sizeof (float*)))"}, {"_Z1fIiEvDBstPT__", "void f<int>(_BitInt(sizeof (int*)))"}, +{"_Z6myfuncRDB8_S0_", "myfunc(_BitInt(8)&, _BitInt(8)&)"}, {"_Z4testI1A1BE1Cv", "C test<A, B>()"}, {"_Z4testI1A1BET0_T_S3_", "B test<A, B>(A, A)"}, {"_ZN1SgtEi", "S::operator>(int)"}, |
