================ @@ -96,13 +97,39 @@ bool MultilibSet::select(const Multilib::flags_list &Flags, llvm::SmallVector<Multilib> &Selected) const { llvm::StringSet<> FlagSet(expandFlags(Flags)); Selected.clear(); - llvm::copy_if(Multilibs, std::back_inserter(Selected), - [&FlagSet](const Multilib &M) { - for (const std::string &F : M.flags()) - if (!FlagSet.contains(F)) - return false; - return true; - }); + + // Decide which multilibs we're going to select at all + std::vector<bool> IsSelected(Multilibs.size(), false); + std::map<std::string, size_t> ExclusiveGroupMembers; + for (size_t i = 0, e = Multilibs.size(); i < e; ++i) { + const Multilib &M = Multilibs[i]; + + // If this multilib doesn't match all our flags, don't select it ---------------- MaskRay wrote:
End complete sentences with a period. https://llvm.org/docs/CodingStandards.html#commenting https://github.com/llvm/llvm-project/pull/69447 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits