#include "clang/Driver/Multilib.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Version.h"
#include "clang/Driver/Driver.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Regex.h"
#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/YAMLParser.h"
#include "llvm/Support/YAMLTraits.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <string>
usingnamespaceclang;
usingnamespacedriver;
usingnamespacellvm::sys;
Multilib::Multilib(StringRef GCCSuffix, StringRef OSSuffix,
StringRef IncludeSuffix, const flags_list &Flags,
StringRef ExclusiveGroup, std::optional<StringRef> Error)
: … { … }
LLVM_DUMP_METHOD void Multilib::dump() const { … }
void Multilib::print(raw_ostream &OS) const { … }
bool Multilib::operator==(const Multilib &Other) const { … }
raw_ostream &clang::driver::operator<<(raw_ostream &OS, const Multilib &M) { … }
MultilibSet &MultilibSet::FilterOut(FilterCallback F) { … }
void MultilibSet::push_back(const Multilib &M) { … }
bool MultilibSet::select(const Driver &D, const Multilib::flags_list &Flags,
llvm::SmallVectorImpl<Multilib> &Selected) const { … }
llvm::StringSet<>
MultilibSet::expandFlags(const Multilib::flags_list &InFlags) const { … }
namespace {
static const VersionTuple MultilibVersionCurrent(1, 0);
struct MultilibSerialization { … };
enum class MultilibGroupType { … };
struct MultilibGroupSerialization { … };
struct MultilibSetSerialization { … };
}
template <> struct llvm::yaml::MappingTraits<MultilibSerialization> { … };
template <> struct llvm::yaml::ScalarEnumerationTraits<MultilibGroupType> { … };
template <> struct llvm::yaml::MappingTraits<MultilibGroupSerialization> { … };
template <> struct llvm::yaml::MappingTraits<MultilibSet::FlagMatcher> { … };
template <> struct llvm::yaml::MappingTraits<MultilibSetSerialization> { … };
LLVM_YAML_IS_SEQUENCE_VECTOR(MultilibSerialization)
LLVM_YAML_IS_SEQUENCE_VECTOR(MultilibGroupSerialization)
LLVM_YAML_IS_SEQUENCE_VECTOR(MultilibSet::FlagMatcher)
llvm::ErrorOr<MultilibSet>
MultilibSet::parseYaml(llvm::MemoryBufferRef Input,
llvm::SourceMgr::DiagHandlerTy DiagHandler,
void *DiagHandlerCtxt) { … }
LLVM_DUMP_METHOD void MultilibSet::dump() const { … }
void MultilibSet::print(raw_ostream &OS) const { … }
raw_ostream &clang::driver::operator<<(raw_ostream &OS, const MultilibSet &MS) { … }