@@ -792,31 +792,27 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
792792 lldb_private::formatters::LibcxxStringSummaryProviderASCII,
793793 " std::string summary provider" ,
794794 " ^std::__[[:alnum:]]+::basic_string<char, "
795- " std::__[[:alnum:]]+::char_traits<char>, "
796- " std::__[[:alnum:]]+::allocator<char> >$" ,
795+ " std::__[[:alnum:]]+::char_traits<char>,.*>$" ,
797796 stl_summary_flags, true );
798797 AddCXXSummary (cpp_category_sp,
799798 lldb_private::formatters::LibcxxStringSummaryProviderASCII,
800799 " std::string summary provider" ,
801800 " ^std::__[[:alnum:]]+::basic_string<unsigned char, "
802- " std::__[[:alnum:]]+::char_traits<unsigned char>, "
803- " std::__[[:alnum:]]+::allocator<unsigned char> >$" ,
801+ " std::__[[:alnum:]]+::char_traits<unsigned char>,.*>$" ,
804802 stl_summary_flags, true );
805803
806804 AddCXXSummary (cpp_category_sp,
807805 lldb_private::formatters::LibcxxStringSummaryProviderUTF16,
808806 " std::u16string summary provider" ,
809807 " ^std::__[[:alnum:]]+::basic_string<char16_t, "
810- " std::__[[:alnum:]]+::char_traits<char16_t>, "
811- " std::__[[:alnum:]]+::allocator<char16_t> >$" ,
808+ " std::__[[:alnum:]]+::char_traits<char16_t>,.*>$" ,
812809 stl_summary_flags, true );
813810
814811 AddCXXSummary (cpp_category_sp,
815812 lldb_private::formatters::LibcxxStringSummaryProviderUTF32,
816813 " std::u32string summary provider" ,
817814 " ^std::__[[:alnum:]]+::basic_string<char32_t, "
818- " std::__[[:alnum:]]+::char_traits<char32_t>, "
819- " std::__[[:alnum:]]+::allocator<char32_t> >$" ,
815+ " std::__[[:alnum:]]+::char_traits<char32_t>,.*>$" ,
820816 stl_summary_flags, true );
821817
822818 AddCXXSummary (cpp_category_sp,
@@ -827,8 +823,7 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
827823 lldb_private::formatters::LibcxxWStringSummaryProvider,
828824 " std::wstring summary provider" ,
829825 " ^std::__[[:alnum:]]+::basic_string<wchar_t, "
830- " std::__[[:alnum:]]+::char_traits<wchar_t>, "
831- " std::__[[:alnum:]]+::allocator<wchar_t> >$" ,
826+ " std::__[[:alnum:]]+::char_traits<wchar_t>,.*>$" ,
832827 stl_summary_flags, true );
833828
834829 AddCXXSummary (cpp_category_sp,
@@ -1344,24 +1339,16 @@ static void RegisterStdStringSummaryProvider(
13441339
13451340 category_sp->AddTypeSummary (makeSpecifier (string_ty), summary_sp);
13461341
1347- // std::basic_string<char>
13481342 category_sp->AddTypeSummary (
13491343 makeSpecifier (llvm::formatv (" std::basic_string<{}>" , char_ty).str ()),
13501344 summary_sp);
1351- // std::basic_string<char,std::char_traits<char>,std::allocator<char> >
1352- category_sp->AddTypeSummary (
1353- makeSpecifier (llvm::formatv (" std::basic_string<{0},std::char_traits<{0}>,"
1354- " std::allocator<{0}> >" ,
1355- char_ty)
1356- .str ()),
1357- summary_sp);
1358- // std::basic_string<char, std::char_traits<char>, std::allocator<char> >
1345+
13591346 category_sp->AddTypeSummary (
1360- makeSpecifier (
1361- llvm::formatv (" std::basic_string<{0}, std::char_traits<{0}>, "
1362- " std::allocator<{0}> >" ,
1347+ std::make_shared<lldb_private::TypeNameSpecifierImpl>(
1348+ llvm::formatv (" ^std::basic_string<{0}, ?std::char_traits<{0}>,.*>$" ,
13631349 char_ty)
1364- .str ()),
1350+ .str (),
1351+ eFormatterMatchRegex),
13651352 summary_sp);
13661353}
13671354
@@ -1384,20 +1371,17 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
13841371 cpp_category_sp->AddTypeSummary (" std::__cxx11::string" , eFormatterMatchExact,
13851372 string_summary_sp);
13861373 cpp_category_sp->AddTypeSummary (
1387- " std::__cxx11::basic_string<char, std::char_traits<char>, "
1388- " std::allocator<char> >" ,
1389- eFormatterMatchExact, string_summary_sp);
1390- cpp_category_sp->AddTypeSummary (" std::__cxx11::basic_string<unsigned char, "
1391- " std::char_traits<unsigned char>, "
1392- " std::allocator<unsigned char> >" ,
1393- eFormatterMatchExact, string_summary_sp);
1374+ " ^std::__cxx11::basic_string<char, std::char_traits<char>,.*>$" ,
1375+ eFormatterMatchRegex, string_summary_sp);
1376+ cpp_category_sp->AddTypeSummary (" ^std::__cxx11::basic_string<unsigned char, "
1377+ " std::char_traits<unsigned char>,.*>$" ,
1378+ eFormatterMatchRegex, string_summary_sp);
13941379
13951380 cpp_category_sp->AddTypeSummary (" std::__cxx11::wstring" , eFormatterMatchExact,
13961381 string_summary_sp);
13971382 cpp_category_sp->AddTypeSummary (
1398- " std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, "
1399- " std::allocator<wchar_t> >" ,
1400- eFormatterMatchExact, string_summary_sp);
1383+ " ^std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,.*>$" ,
1384+ eFormatterMatchRegex, string_summary_sp);
14011385
14021386 SyntheticChildren::Flags stl_synth_flags;
14031387 stl_synth_flags.SetCascades (true ).SetSkipPointers (false ).SetSkipReferences (
0 commit comments