llvm/clang/lib/Driver/Multilib.cpp

//===- Multilib.cpp - Multilib Implementation -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#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> FatalError)
    :{}

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 {

// When updating this also update MULTILIB_VERSION in MultilibTest.cpp
static const VersionTuple MultilibVersionCurrent(1, 0);

struct MultilibSerialization {};

enum class MultilibGroupType {};

struct MultilibGroupSerialization {};

struct MultilibSetSerialization {};

} // end anonymous namespace

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) {}