LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::opt::Arg Class Reference

A concrete instance of a particular driver option. More...

#include "llvm/Option/Arg.h"

Public Member Functions

 Arg (const Option Opt, StringRef Spelling, unsigned Index, const Arg *BaseArg=nullptr)
 
 Arg (const Option Opt, StringRef Spelling, unsigned Index, const char *Value0, const Arg *BaseArg=nullptr)
 
 Arg (const Option Opt, StringRef Spelling, unsigned Index, const char *Value0, const char *Value1, const Arg *BaseArg=nullptr)
 
 Arg (const Arg &)=delete
 
Argoperator= (const Arg &)=delete
 
 ~Arg ()
 
const OptiongetOption () const
 
StringRef getSpelling () const
 
unsigned getIndex () const
 
const ArggetBaseArg () const
 Return the base argument which generated this arg. More...
 
void setBaseArg (const Arg *BaseArg)
 
bool getOwnsValues () const
 
void setOwnsValues (bool Value) const
 
bool isClaimed () const
 
void claim () const
 Set the Arg claimed bit. More...
 
unsigned getNumValues () const
 
const chargetValue (unsigned N=0) const
 
SmallVectorImpl< const char * > & getValues ()
 
const SmallVectorImpl< const char * > & getValues () const
 
bool containsValue (StringRef Value) const
 
void render (const ArgList &Args, ArgStringList &Output) const
 Append the argument onto the given array as strings. More...
 
void renderAsInput (const ArgList &Args, ArgStringList &Output) const
 Append the argument, render as an input, onto the given array as strings. More...
 
void print (raw_ostream &O) const
 
void dump () const
 
std::string getAsString (const ArgList &Args) const
 Return a formatted version of the argument and its values, for debugging and diagnostics. More...
 

Detailed Description

A concrete instance of a particular driver option.

The Arg class encodes just enough information to be able to derive the argument values efficiently.

Definition at line 35 of file Arg.h.

Constructor & Destructor Documentation

◆ Arg() [1/4]

Arg::Arg ( const Option  Opt,
StringRef  Spelling,
unsigned  Index,
const Arg BaseArg = nullptr 
)

Definition at line 21 of file Arg.cpp.

◆ Arg() [2/4]

Arg::Arg ( const Option  Opt,
StringRef  Spelling,
unsigned  Index,
const char Value0,
const Arg BaseArg = nullptr 
)

◆ Arg() [3/4]

Arg::Arg ( const Option  Opt,
StringRef  Spelling,
unsigned  Index,
const char Value0,
const char Value1,
const Arg BaseArg = nullptr 
)

◆ Arg() [4/4]

llvm::opt::Arg::Arg ( const Arg )
delete

◆ ~Arg()

Arg::~Arg ( )

Definition at line 40 of file Arg.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::size().

Member Function Documentation

◆ claim()

void llvm::opt::Arg::claim ( ) const
inline

◆ containsValue()

bool llvm::opt::Arg::containsValue ( StringRef  Value) const
inline

◆ dump()

LLVM_DUMP_METHOD void Arg::dump ( ) const

Definition at line 65 of file Arg.cpp.

References llvm::dbgs(), and print().

Referenced by containsValue().

◆ getAsString()

std::string Arg::getAsString ( const ArgList Args) const

Return a formatted version of the argument and its values, for debugging and diagnostics.

Definition at line 68 of file Arg.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), render(), and llvm::raw_svector_ostream::str().

Referenced by containsValue().

◆ getBaseArg()

const Arg& llvm::opt::Arg::getBaseArg ( ) const
inline

Return the base argument which generated this arg.

This is either the argument itself or the argument it was derived from during tool chain specific argument translation.

Definition at line 81 of file Arg.h.

Referenced by claim(), and isClaimed().

◆ getIndex()

unsigned llvm::opt::Arg::getIndex ( ) const
inline

Definition at line 75 of file Arg.h.

Referenced by render().

◆ getNumValues()

unsigned llvm::opt::Arg::getNumValues ( ) const
inline

Definition at line 94 of file Arg.h.

References llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by containsValue(), and render().

◆ getOption()

const Option& llvm::opt::Arg::getOption ( ) const
inline

◆ getOwnsValues()

bool llvm::opt::Arg::getOwnsValues ( ) const
inline

Definition at line 86 of file Arg.h.

◆ getSpelling()

StringRef llvm::opt::Arg::getSpelling ( ) const
inline

Definition at line 74 of file Arg.h.

Referenced by render().

◆ getValue()

const char* llvm::opt::Arg::getValue ( unsigned  N = 0) const
inline

Definition at line 96 of file Arg.h.

References N.

Referenced by llvm::opt::ArgList::AddAllArgsTranslated(), llvm::dlltoolDriverMain(), and render().

◆ getValues() [1/2]

SmallVectorImpl<const char *>& llvm::opt::Arg::getValues ( )
inline

Definition at line 100 of file Arg.h.

Referenced by llvm::opt::Option::accept(), and llvm::opt::ArgList::AddAllArgValues().

◆ getValues() [2/2]

const SmallVectorImpl<const char *>& llvm::opt::Arg::getValues ( ) const
inline

Definition at line 101 of file Arg.h.

◆ isClaimed()

bool llvm::opt::Arg::isClaimed ( ) const
inline

Definition at line 89 of file Arg.h.

References getBaseArg().

Referenced by llvm::opt::ArgList::ClaimAllArgs().

◆ operator=()

Arg& llvm::opt::Arg::operator= ( const Arg )
delete

◆ print()

void Arg::print ( raw_ostream O) const

◆ render()

void Arg::render ( const ArgList Args,
ArgStringList Output 
) const

◆ renderAsInput()

void Arg::renderAsInput ( const ArgList Args,
ArgStringList Output 
) const

Append the argument, render as an input, onto the given array as strings.

The distinction is that some options only render their values when rendered as a input (e.g., Xlinker).

Definition at line 84 of file Arg.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), getOption(), and render().

Referenced by containsValue().

◆ setBaseArg()

void llvm::opt::Arg::setBaseArg ( const Arg BaseArg)
inline

Definition at line 84 of file Arg.h.

◆ setOwnsValues()

void llvm::opt::Arg::setOwnsValues ( bool  Value) const
inline

Definition at line 87 of file Arg.h.

Referenced by llvm::opt::Option::accept().


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