Lines Matching defs:Multilib
1 //===--- Multilib.cpp - Multilib Implementation ---------------------------===//
10 #include "clang/Driver/Multilib.h"
59 Multilib::Multilib(StringRef GCCSuffix, StringRef OSSuffix,
67 Multilib &Multilib::gccSuffix(StringRef S) {
73 Multilib &Multilib::osSuffix(StringRef S) {
79 Multilib &Multilib::includeSuffix(StringRef S) {
85 void Multilib::print(raw_ostream &OS) const {
99 bool Multilib::isValid() const {
115 bool Multilib::operator==(const Multilib &Other) const {
138 raw_ostream &clang::driver::operator<<(raw_ostream &OS, const Multilib &M) {
143 MultilibSet &MultilibSet::Maybe(const Multilib &M) {
144 Multilib Opposite;
153 MultilibSet &MultilibSet::Either(const Multilib &M1, const Multilib &M2) {
157 MultilibSet &MultilibSet::Either(const Multilib &M1, const Multilib &M2,
158 const Multilib &M3) {
162 MultilibSet &MultilibSet::Either(const Multilib &M1, const Multilib &M2,
163 const Multilib &M3, const Multilib &M4) {
167 MultilibSet &MultilibSet::Either(const Multilib &M1, const Multilib &M2,
168 const Multilib &M3, const Multilib &M4,
169 const Multilib &M5) {
173 static Multilib compose(const Multilib &Base, const Multilib &New) {
182 Multilib Composed(GCCSuffix, OSSuffix, IncludeSuffix);
184 Multilib::flags_list &Flags = Composed.flags();
192 MultilibSet &MultilibSet::Either(ArrayRef<Multilib> MultilibSegments) {
199 for (const Multilib &New : MultilibSegments) {
200 for (const Multilib &Base : *this) {
201 Multilib MO = compose(Base, New);
228 filterInPlace([&R](const Multilib &M) { return R.match(M.gccSuffix()); },
233 void MultilibSet::push_back(const Multilib &M) { Multilibs.push_back(M); }
245 bool MultilibSet::select(const Multilib::flags_list &Flags, Multilib &M) const {
253 multilib_list Filtered = filterCopy([&FlagSet](const Multilib &M) {
276 for (const Multilib &M : *this)