clang  6.0.0svn
Public Types | Public Member Functions | List of all members
clang::driver::MultilibSet Class Reference

#include "clang/Driver/Multilib.h"

Public Types

typedef std::vector< Multilibmultilib_list
 
typedef multilib_list::iterator iterator
 
typedef multilib_list::const_iterator const_iterator
 
typedef std::function< std::vector< std::string >const Multilib &M)> IncludeDirsFunc
 
typedef llvm::function_ref< bool(const Multilib &)> FilterCallback
 

Public Member Functions

 MultilibSet ()
 
MultilibSetMaybe (const Multilib &M)
 Add an optional Multilib segment. More...
 
MultilibSetEither (const Multilib &M1, const Multilib &M2)
 Add a set of mutually incompatible Multilib segments. More...
 
MultilibSetEither (const Multilib &M1, const Multilib &M2, const Multilib &M3)
 
MultilibSetEither (const Multilib &M1, const Multilib &M2, const Multilib &M3, const Multilib &M4)
 
MultilibSetEither (const Multilib &M1, const Multilib &M2, const Multilib &M3, const Multilib &M4, const Multilib &M5)
 
MultilibSetEither (ArrayRef< Multilib > Ms)
 
MultilibSetFilterOut (FilterCallback F)
 Filter out some subset of the Multilibs using a user defined callback. More...
 
MultilibSetFilterOut (const char *Regex)
 Filter out those Multilibs whose gccSuffix matches the given expression. More...
 
void push_back (const Multilib &M)
 Add a completed Multilib to the set. More...
 
void combineWith (const MultilibSet &MS)
 Union this set of multilibs with another. More...
 
void clear ()
 Remove all of thie multilibs from the set. More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
bool select (const Multilib::flags_list &Flags, Multilib &M) const
 Pick the best multilib in the set,. More...
 
unsigned size () const
 
LLVM_DUMP_METHOD void dump () const
 
void print (raw_ostream &OS) const
 
MultilibSetsetIncludeDirsCallback (IncludeDirsFunc F)
 
const IncludeDirsFuncincludeDirsCallback () const
 
MultilibSetsetFilePathsCallback (IncludeDirsFunc F)
 
const IncludeDirsFuncfilePathsCallback () const
 

Detailed Description

Definition at line 103 of file Multilib.h.

Member Typedef Documentation

◆ const_iterator

typedef multilib_list::const_iterator clang::driver::MultilibSet::const_iterator

Definition at line 107 of file Multilib.h.

◆ FilterCallback

typedef llvm::function_ref<bool(const Multilib &)> clang::driver::MultilibSet::FilterCallback

Definition at line 112 of file Multilib.h.

◆ IncludeDirsFunc

typedef std::function<std::vector<std::string>const Multilib &M)> clang::driver::MultilibSet::IncludeDirsFunc

Definition at line 110 of file Multilib.h.

◆ iterator

typedef multilib_list::iterator clang::driver::MultilibSet::iterator

Definition at line 106 of file Multilib.h.

◆ multilib_list

Definition at line 105 of file Multilib.h.

Constructor & Destructor Documentation

◆ MultilibSet()

clang::driver::MultilibSet::MultilibSet ( )
inline

Definition at line 120 of file Multilib.h.

Member Function Documentation

◆ begin() [1/2]

iterator clang::driver::MultilibSet::begin ( )
inline

Definition at line 150 of file Multilib.h.

Referenced by combineWith().

◆ begin() [2/2]

const_iterator clang::driver::MultilibSet::begin ( ) const
inline

Definition at line 151 of file Multilib.h.

◆ clear()

void clang::driver::MultilibSet::clear ( )
inline

Remove all of thie multilibs from the set.

Definition at line 148 of file Multilib.h.

◆ combineWith()

void MultilibSet::combineWith ( const MultilibSet MS)

Union this set of multilibs with another.

Definition at line 237 of file Multilib.cpp.

References begin(), and end().

◆ dump()

LLVM_DUMP_METHOD void MultilibSet::dump ( ) const

Definition at line 277 of file Multilib.cpp.

References clang::driver::Multilib::print().

◆ Either() [1/5]

MultilibSet & MultilibSet::Either ( const Multilib M1,
const Multilib M2 
)

◆ Either() [2/5]

MultilibSet & MultilibSet::Either ( const Multilib M1,
const Multilib M2,
const Multilib M3 
)

Definition at line 159 of file Multilib.cpp.

◆ Either() [3/5]

MultilibSet & MultilibSet::Either ( const Multilib M1,
const Multilib M2,
const Multilib M3,
const Multilib M4 
)

Definition at line 164 of file Multilib.cpp.

◆ Either() [4/5]

MultilibSet & MultilibSet::Either ( const Multilib M1,
const Multilib M2,
const Multilib M3,
const Multilib M4,
const Multilib M5 
)

Definition at line 169 of file Multilib.cpp.

◆ Either() [5/5]

MultilibSet & MultilibSet::Either ( ArrayRef< Multilib Ms)

Definition at line 194 of file Multilib.cpp.

References compose(), and clang::driver::Multilib::isValid().

◆ end() [1/2]

iterator clang::driver::MultilibSet::end ( )
inline

Definition at line 153 of file Multilib.h.

Referenced by combineWith().

◆ end() [2/2]

const_iterator clang::driver::MultilibSet::end ( ) const
inline

Definition at line 154 of file Multilib.h.

References select().

◆ filePathsCallback()

const IncludeDirsFunc& clang::driver::MultilibSet::filePathsCallback ( ) const
inline

Definition at line 174 of file Multilib.h.

References clang::driver::operator<<().

Referenced by addMultilibsFilePaths().

◆ FilterOut() [1/2]

MultilibSet & MultilibSet::FilterOut ( FilterCallback  F)

Filter out some subset of the Multilibs using a user defined callback.

Definition at line 215 of file Multilib.cpp.

Referenced by findAndroidArmMultilibs(), findBiarchMultilibs(), findMipsAndroidMultilibs(), findMipsCsMultilibs(), findMipsImgMultilibs(), and findMipsMtiMultilibs().

◆ FilterOut() [2/2]

MultilibSet & MultilibSet::FilterOut ( const char *  Regex)

Filter out those Multilibs whose gccSuffix matches the given expression.

Definition at line 220 of file Multilib.cpp.

References clang::driver::Multilib::gccSuffix().

◆ includeDirsCallback()

const IncludeDirsFunc& clang::driver::MultilibSet::includeDirsCallback ( ) const
inline

Definition at line 168 of file Multilib.h.

◆ Maybe()

MultilibSet & MultilibSet::Maybe ( const Multilib M)

◆ print()

void MultilibSet::print ( raw_ostream &  OS) const

Definition at line 281 of file Multilib.cpp.

Referenced by clang::driver::operator<<().

◆ push_back()

void MultilibSet::push_back ( const Multilib M)

Add a completed Multilib to the set.

Definition at line 235 of file Multilib.cpp.

Referenced by findBiarchMultilibs(), and findMipsImgMultilibs().

◆ select()

bool MultilibSet::select ( const Multilib::flags_list Flags,
Multilib M 
) const

Pick the best multilib in the set,.

Returns
false if none are compatible

Definition at line 247 of file Multilib.cpp.

References clang::driver::Multilib::flags(), and isFlagEnabled().

Referenced by findAndroidArmMultilibs(), findBiarchMultilibs(), findMipsAndroidMultilibs(), findMipsImgMultilibs(), and findMipsMuslMultilibs().

◆ setFilePathsCallback()

MultilibSet& clang::driver::MultilibSet::setFilePathsCallback ( IncludeDirsFunc  F)
inline

Definition at line 170 of file Multilib.h.

◆ setIncludeDirsCallback()

MultilibSet& clang::driver::MultilibSet::setIncludeDirsCallback ( IncludeDirsFunc  F)
inline

◆ size()

unsigned clang::driver::MultilibSet::size ( ) const
inline

Definition at line 159 of file Multilib.h.

References clang::driver::Multilib::dump(), and clang::driver::Multilib::print().

Referenced by findMipsCsMultilibs().


The documentation for this class was generated from the following files: