Author: Nerixyz Date: 2026-08-24T09:21:10+01:00 New Revision: 297354b40f012fc508c92b88d7ecdf2dd048af28
URL: https://github.com/llvm/llvm-project/commit/297354b40f012fc508c92b88d7ecdf2dd048af28 DIFF: https://github.com/llvm/llvm-project/commit/297354b40f012fc508c92b88d7ecdf2dd048af28.diff LOG: [lldb] Create mock type systems in array for deterministic order (#218009) To fix the occasional test failure from #217789: Instead of using two random heap allocations for the type systems, allocate them in an array once and create aliases to the elements (similar to what David suggested in https://github.com/llvm/llvm-project/pull/217789#issuecomment-5372708193). The array allocation is destroyed when the last (aliased) shared pointer is destroyed. Added: Modified: lldb/unittests/Target/ScratchTypeSystemTest.cpp Removed: ################################################################################ diff --git a/lldb/unittests/Target/ScratchTypeSystemTest.cpp b/lldb/unittests/Target/ScratchTypeSystemTest.cpp index 85dccf06a30c0..90795bf049595 100644 --- a/lldb/unittests/Target/ScratchTypeSystemTest.cpp +++ b/lldb/unittests/Target/ScratchTypeSystemTest.cpp @@ -110,10 +110,12 @@ TEST_F(TestTypeSystemMap, GetScratchTypeSystemsIsOrderedByLanguage) { // order in memory is then the reverse of the order of the languages, and an // implementation that deduplicates by sorting on pointer identity returns the // two the wrong way round. - g_fortran90_type_system = - std::make_shared<MockTypeSystem>(lldb::eLanguageTypeFortran90); - g_fortran77_type_system = - std::make_shared<MockTypeSystem>(lldb::eLanguageTypeFortran77); + std::shared_ptr<MockTypeSystem[]> mocks(new MockTypeSystem[2]{ + MockTypeSystem(lldb::eLanguageTypeFortran90), + MockTypeSystem(lldb::eLanguageTypeFortran77), + }); + g_fortran90_type_system = std::shared_ptr<MockTypeSystem>(mocks, &mocks[0]); + g_fortran77_type_system = std::shared_ptr<MockTypeSystem>(mocks, &mocks[1]); ASSERT_LT(g_fortran90_type_system.get(), g_fortran77_type_system.get()); LanguageSet fortran77; _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
