forked from OSchip/llvm-project
[lldb] Relax libc++ ABI version checking
libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION macro. Currently there are at least 3 settings used in real systems (1 as the default, ndk1 for Anroid, Cr for Chromium). Only the 1 and ndk1 cases were handled. This change relaxes the check to allow any ABI version. Differential Revision: https://reviews.llvm.org/D57466 llvm-svn: 352899
This commit is contained in:
parent
5503e4f9b9
commit
7ba2d3e872
|
@ -419,60 +419,49 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
|
|||
.SetHideItemNames(false);
|
||||
|
||||
#ifndef LLDB_DISABLE_PYTHON
|
||||
lldb::TypeSummaryImplSP std_string_summary_sp(new CXXFunctionSummaryFormat(
|
||||
stl_summary_flags,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderASCII,
|
||||
"std::string summary provider"));
|
||||
lldb::TypeSummaryImplSP std_stringu16_summary_sp(new CXXFunctionSummaryFormat(
|
||||
stl_summary_flags,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderUTF16,
|
||||
"std::u16string summary provider"));
|
||||
lldb::TypeSummaryImplSP std_stringu32_summary_sp(new CXXFunctionSummaryFormat(
|
||||
stl_summary_flags,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderUTF32,
|
||||
"std::u32string summary provider"));
|
||||
lldb::TypeSummaryImplSP std_wstring_summary_sp(new CXXFunctionSummaryFormat(
|
||||
stl_summary_flags, lldb_private::formatters::LibcxxWStringSummaryProvider,
|
||||
"std::wstring summary provider"));
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderASCII,
|
||||
"std::string summary provider",
|
||||
ConstString("^std::__[[:alnum:]]+::string$"), stl_summary_flags,
|
||||
true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderASCII,
|
||||
"std::string summary provider",
|
||||
ConstString("^std::__[[:alnum:]]+::basic_string<char, "
|
||||
"std::__[[:alnum:]]+::char_traits<char>, "
|
||||
"std::__[[:alnum:]]+::allocator<char> >$"),
|
||||
stl_summary_flags, true);
|
||||
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__1::string"), std_string_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__ndk1::string"), std_string_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__1::basic_string<char, std::__1::char_traits<char>, "
|
||||
"std::__1::allocator<char> >"),
|
||||
std_string_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString(
|
||||
"std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, "
|
||||
"std::__1::allocator<char16_t> >"),
|
||||
std_stringu16_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString(
|
||||
"std::__1::basic_string<char32_t, std::__1::char_traits<char32_t>, "
|
||||
"std::__1::allocator<char32_t> >"),
|
||||
std_stringu32_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__ndk1::basic_string<char, "
|
||||
"std::__ndk1::char_traits<char>, "
|
||||
"std::__ndk1::allocator<char> >"),
|
||||
std_string_summary_sp);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderUTF16,
|
||||
"std::u16string summary provider",
|
||||
ConstString(
|
||||
"^std::__[[:alnum:]]+::basic_string<char16_t, "
|
||||
"std::__[[:alnum:]]+::char_traits<char16_t>, "
|
||||
"std::__[[:alnum:]]+::allocator<char16_t> >$"),
|
||||
stl_summary_flags, true);
|
||||
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__1::wstring"), std_wstring_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__ndk1::wstring"), std_wstring_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__1::basic_string<wchar_t, "
|
||||
"std::__1::char_traits<wchar_t>, "
|
||||
"std::__1::allocator<wchar_t> >"),
|
||||
std_wstring_summary_sp);
|
||||
cpp_category_sp->GetTypeSummariesContainer()->Add(
|
||||
ConstString("std::__ndk1::basic_string<wchar_t, "
|
||||
"std::__ndk1::char_traits<wchar_t>, "
|
||||
"std::__ndk1::allocator<wchar_t> >"),
|
||||
std_wstring_summary_sp);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStringSummaryProviderUTF32,
|
||||
"std::u32string summary provider",
|
||||
ConstString(
|
||||
"^std::__[[:alnum:]]+::basic_string<char32_t, "
|
||||
"std::__[[:alnum:]]+::char_traits<char32_t>, "
|
||||
"std::__[[:alnum:]]+::allocator<char32_t> >$"),
|
||||
stl_summary_flags, true);
|
||||
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxWStringSummaryProvider,
|
||||
"std::wstring summary provider",
|
||||
ConstString("^std::__[[:alnum:]]+::wstring$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxWStringSummaryProvider,
|
||||
"std::wstring summary provider",
|
||||
ConstString("^std::__[[:alnum:]]+::basic_string<wchar_t, "
|
||||
"std::__[[:alnum:]]+::char_traits<wchar_t>, "
|
||||
"std::__[[:alnum:]]+::allocator<wchar_t> >$"),
|
||||
stl_summary_flags, true);
|
||||
|
||||
SyntheticChildren::Flags stl_synth_flags;
|
||||
stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(
|
||||
|
@ -484,54 +473,55 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
|
|||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxBitsetSyntheticFrontEndCreator,
|
||||
"libc++ std::bitset synthetic children",
|
||||
ConstString("^std::__(ndk)?1::bitset<.+>(( )?&)?$"), stl_deref_flags,
|
||||
ConstString("^std::__[[:alnum:]]+::bitset<.+>(( )?&)?$"), stl_deref_flags,
|
||||
true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdVectorSyntheticFrontEndCreator,
|
||||
"libc++ std::vector synthetic children",
|
||||
ConstString("^std::__(ndk)?1::vector<.+>(( )?&)?$"), stl_deref_flags,
|
||||
ConstString("^std::__[[:alnum:]]+::vector<.+>(( )?&)?$"), stl_deref_flags,
|
||||
true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdForwardListSyntheticFrontEndCreator,
|
||||
"libc++ std::forward_list synthetic children",
|
||||
ConstString("^std::__(ndk)?1::forward_list<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::forward_list<.+>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdListSyntheticFrontEndCreator,
|
||||
"libc++ std::list synthetic children",
|
||||
ConstString("^std::__(ndk)?1::list<.+>(( )?&)?$"), stl_synth_flags, true);
|
||||
ConstString("^std::__[[:alnum:]]+::list<.+>(( )?&)?$"), stl_synth_flags,
|
||||
true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator,
|
||||
"libc++ std::map synthetic children",
|
||||
ConstString("^std::__(ndk)?1::map<.+> >(( )?&)?$"), stl_synth_flags,
|
||||
ConstString("^std::__[[:alnum:]]+::map<.+> >(( )?&)?$"), stl_synth_flags,
|
||||
true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator,
|
||||
"libc++ std::set synthetic children",
|
||||
ConstString("^std::__(ndk)?1::set<.+> >(( )?&)?$"), stl_deref_flags,
|
||||
ConstString("^std::__[[:alnum:]]+::set<.+> >(( )?&)?$"), stl_deref_flags,
|
||||
true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator,
|
||||
"libc++ std::multiset synthetic children",
|
||||
ConstString("^std::__(ndk)?1::multiset<.+> >(( )?&)?$"), stl_deref_flags,
|
||||
true);
|
||||
ConstString("^std::__[[:alnum:]]+::multiset<.+> >(( )?&)?$"),
|
||||
stl_deref_flags, true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator,
|
||||
"libc++ std::multimap synthetic children",
|
||||
ConstString("^std::__(ndk)?1::multimap<.+> >(( )?&)?$"), stl_synth_flags,
|
||||
true);
|
||||
ConstString("^std::__[[:alnum:]]+::multimap<.+> >(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEndCreator,
|
||||
"libc++ std::unordered containers synthetic children",
|
||||
ConstString("^(std::__(ndk)?1::)unordered_(multi)?(map|set)<.+> >$"),
|
||||
ConstString("^(std::__[[:alnum:]]+::)unordered_(multi)?(map|set)<.+> >$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
|
@ -541,29 +531,29 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
|
|||
true);
|
||||
AddCXXSynthetic(cpp_category_sp, LibcxxQueueFrontEndCreator,
|
||||
"libc++ std::queue synthetic children",
|
||||
ConstString("^std::__(ndk)?1::queue<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::queue<.+>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(cpp_category_sp, LibcxxTupleFrontEndCreator,
|
||||
"libc++ std::tuple synthetic children",
|
||||
ConstString("^std::__(ndk)?1::tuple<.*>(( )?&)?$"), stl_synth_flags,
|
||||
true);
|
||||
ConstString("^std::__[[:alnum:]]+::tuple<.*>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(cpp_category_sp, LibcxxOptionalFrontEndCreator,
|
||||
"libc++ std::optional synthetic children",
|
||||
ConstString("^std::__(ndk)?1::optional<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::optional<.+>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(cpp_category_sp, LibcxxVariantFrontEndCreator,
|
||||
"libc++ std::variant synthetic children",
|
||||
ConstString("^std::__(ndk)?1::variant<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::variant<.+>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxAtomicSyntheticFrontEndCreator,
|
||||
"libc++ std::atomic synthetic children",
|
||||
ConstString("^std::__(ndk)?1::atomic<.+>$"), stl_synth_flags, true);
|
||||
ConstString("^std::__[[:alnum:]]+::atomic<.+>$"), stl_synth_flags, true);
|
||||
|
||||
cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add(
|
||||
RegularExpressionSP(new RegularExpression(
|
||||
llvm::StringRef("^(std::__(ndk)?1::)deque<.+>(( )?&)?$"))),
|
||||
llvm::StringRef("^(std::__[[:alnum:]]+::)deque<.+>(( )?&)?$"))),
|
||||
SyntheticChildrenSP(new ScriptedSyntheticChildren(
|
||||
stl_synth_flags,
|
||||
"lldb.formatters.cpp.libcxx.stddeque_SynthProvider")));
|
||||
|
@ -572,94 +562,96 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
|
|||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator,
|
||||
"shared_ptr synthetic children",
|
||||
ConstString("^(std::__(ndk)?1::)shared_ptr<.+>(( )?&)?$"),
|
||||
ConstString("^(std::__[[:alnum:]]+::)shared_ptr<.+>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator,
|
||||
"weak_ptr synthetic children",
|
||||
ConstString("^(std::__(ndk)?1::)weak_ptr<.+>(( )?&)?$"), stl_synth_flags,
|
||||
true);
|
||||
ConstString("^(std::__[[:alnum:]]+::)weak_ptr<.+>(( )?&)?$"),
|
||||
stl_synth_flags, true);
|
||||
|
||||
AddCXXSummary(
|
||||
cpp_category_sp, lldb_private::formatters::LibcxxFunctionSummaryProvider,
|
||||
"libc++ std::function summary provider",
|
||||
ConstString("^std::__(ndk)?1::function<.+>$"), stl_summary_flags, true);
|
||||
ConstString("^std::__[[:alnum:]]+::function<.+>$"), stl_summary_flags,
|
||||
true);
|
||||
|
||||
stl_summary_flags.SetDontShowChildren(false);
|
||||
stl_summary_flags.SetSkipPointers(false);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::bitset summary provider",
|
||||
ConstString("^std::__(ndk)?1::bitset<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::bitset<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::vector summary provider",
|
||||
ConstString("^std::__(ndk)?1::vector<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::vector<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::list summary provider",
|
||||
ConstString("^std::__(ndk)?1::forward_list<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::forward_list<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::list summary provider",
|
||||
ConstString("^std::__(ndk)?1::list<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::list<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::map summary provider",
|
||||
ConstString("^std::__(ndk)?1::map<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::map<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::deque summary provider",
|
||||
ConstString("^std::__(ndk)?1::deque<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::deque<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::queue summary provider",
|
||||
ConstString("^std::__(ndk)?1::queue<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::queue<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::set summary provider",
|
||||
ConstString("^std::__(ndk)?1::set<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::set<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::multiset summary provider",
|
||||
ConstString("^std::__(ndk)?1::multiset<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::multiset<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::multimap summary provider",
|
||||
ConstString("^std::__(ndk)?1::multimap<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::multimap<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(
|
||||
cpp_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider,
|
||||
"libc++ std::unordered containers summary provider",
|
||||
ConstString("^(std::__(ndk)?1::)unordered_(multi)?(map|set)<.+> >$"),
|
||||
ConstString("^(std::__[[:alnum:]]+::)unordered_(multi)?(map|set)<.+> >$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp, LibcxxContainerSummaryProvider,
|
||||
"libc++ std::tuple summary provider",
|
||||
ConstString("^std::__(ndk)?1::tuple<.*>(( )?&)?$"), stl_summary_flags,
|
||||
true);
|
||||
ConstString("^std::__[[:alnum:]]+::tuple<.*>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(
|
||||
cpp_category_sp, lldb_private::formatters::LibCxxAtomicSummaryProvider,
|
||||
"libc++ std::atomic summary provider",
|
||||
ConstString("^std::__(ndk)?1::atomic<.+>$"), stl_summary_flags, true);
|
||||
ConstString("^std::__[[:alnum:]]+::atomic<.+>$"), stl_summary_flags,
|
||||
true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxOptionalSummaryProvider,
|
||||
"libc++ std::optional summary provider",
|
||||
ConstString("^std::__(ndk)?1::optional<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::optional<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxVariantSummaryProvider,
|
||||
"libc++ std::variant summary provider",
|
||||
ConstString("^std::__(ndk)?1::variant<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::variant<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
|
||||
stl_summary_flags.SetSkipPointers(true);
|
||||
|
@ -667,25 +659,26 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
|
|||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxSmartPointerSummaryProvider,
|
||||
"libc++ std::shared_ptr summary provider",
|
||||
ConstString("^std::__(ndk)?1::shared_ptr<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::shared_ptr<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
AddCXXSummary(cpp_category_sp,
|
||||
lldb_private::formatters::LibcxxSmartPointerSummaryProvider,
|
||||
"libc++ std::weak_ptr summary provider",
|
||||
ConstString("^std::__(ndk)?1::weak_ptr<.+>(( )?&)?$"),
|
||||
ConstString("^std::__[[:alnum:]]+::weak_ptr<.+>(( )?&)?$"),
|
||||
stl_summary_flags, true);
|
||||
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibCxxVectorIteratorSyntheticFrontEndCreator,
|
||||
"std::vector iterator synthetic children",
|
||||
ConstString("^std::__(ndk)?1::__wrap_iter<.+>$"), stl_synth_flags, true);
|
||||
ConstString("^std::__[[:alnum:]]+::__wrap_iter<.+>$"), stl_synth_flags,
|
||||
true);
|
||||
|
||||
AddCXXSynthetic(
|
||||
cpp_category_sp,
|
||||
lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEndCreator,
|
||||
"std::map iterator synthetic children",
|
||||
ConstString("^std::__(ndk)?1::__map_iterator<.+>$"), stl_synth_flags,
|
||||
ConstString("^std::__[[:alnum:]]+::__map_iterator<.+>$"), stl_synth_flags,
|
||||
true);
|
||||
#endif
|
||||
}
|
||||
|
@ -953,8 +946,8 @@ lldb::TypeCategoryImplSP CPlusPlusLanguage::GetFormatters() {
|
|||
llvm::call_once(g_initialize, [this]() -> void {
|
||||
DataVisualization::Categories::GetCategory(GetPluginName(), g_category);
|
||||
if (g_category) {
|
||||
LoadLibCxxFormatters(g_category);
|
||||
LoadLibStdcppFormatters(g_category);
|
||||
LoadLibCxxFormatters(g_category);
|
||||
LoadSystemFormatters(g_category);
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue