clang  3.8.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::driver::Action Class Reference

Action - Represent an abstract compilation step to perform. More...

#include <Action.h>

Inheritance diagram for clang::driver::Action:
[legend]

Public Types

enum  ActionClass {
  InputClass = 0, BindArchClass, CudaDeviceClass, CudaHostClass,
  PreprocessJobClass, PrecompileJobClass, AnalyzeJobClass, MigrateJobClass,
  CompileJobClass, BackendJobClass, AssembleJobClass, LinkJobClass,
  LipoJobClass, DsymutilJobClass, VerifyDebugInfoJobClass, VerifyPCHJobClass,
  JobClassFirst =PreprocessJobClass, JobClassLast =VerifyPCHJobClass
}
 
typedef ActionList::size_type size_type
 
typedef ActionList::iterator iterator
 
typedef ActionList::const_iterator const_iterator
 

Public Member Functions

virtual ~Action ()
 
const char * getClassName () const
 
ActionClass getKind () const
 
types::ID getType () const
 
ActionListgetInputs ()
 
const ActionListgetInputs () const
 
size_type size () const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 

Static Public Member Functions

static const char * getClassName (ActionClass AC)
 

Protected Member Functions

 Action (ActionClass Kind, types::ID Type)
 
 Action (ActionClass Kind, Action *Input, types::ID Type)
 
 Type (Type)
 
 Inputs (Inputs)
 

Protected Attributes

 Type
 

Detailed Description

Action - Represent an abstract compilation step to perform.

An action represents an edge in the compilation graph; typically it is a job to transform an input using some tool.

The current driver is hard wired to expect actions which produce a single primary output, at least in terms of controlling the compilation. Actions can produce auxiliary files, but can only produce a single output to feed into subsequent actions.

Actions are usually owned by a Compilation, which creates new actions via MakeAction().

Definition at line 41 of file Action.h.

Member Typedef Documentation

typedef ActionList::const_iterator clang::driver::Action::const_iterator

Definition at line 45 of file Action.h.

typedef ActionList::iterator clang::driver::Action::iterator

Definition at line 44 of file Action.h.

typedef ActionList::size_type clang::driver::Action::size_type

Definition at line 43 of file Action.h.

Member Enumeration Documentation

Enumerator
InputClass 
BindArchClass 
CudaDeviceClass 
CudaHostClass 
PreprocessJobClass 
PrecompileJobClass 
AnalyzeJobClass 
MigrateJobClass 
CompileJobClass 
BackendJobClass 
AssembleJobClass 
LinkJobClass 
LipoJobClass 
DsymutilJobClass 
VerifyDebugInfoJobClass 
VerifyPCHJobClass 
JobClassFirst 
JobClassLast 

Definition at line 47 of file Action.h.

Constructor & Destructor Documentation

clang::driver::Action::Action ( ActionClass  Kind,
types::ID  Type 
)
inlineprotected

Definition at line 80 of file Action.h.

clang::driver::Action::Action ( ActionClass  Kind,
Action Input,
types::ID  Type 
)
inlineprotected

Definition at line 81 of file Action.h.

Action::~Action ( )
virtual

Definition at line 18 of file Action.cpp.

Member Function Documentation

iterator clang::driver::Action::begin ( )
inline
const_iterator clang::driver::Action::begin ( ) const
inline

Definition at line 103 of file Action.h.

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

Definition at line 102 of file Action.h.

Referenced by ActionFailed().

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

Definition at line 104 of file Action.h.

const char * Action::getClassName ( ActionClass  AC)
static

Definition at line 20 of file Action.cpp.

const char* clang::driver::Action::getClassName ( ) const
inline

Definition at line 91 of file Action.h.

References getKind().

Referenced by PrintActions1().

ActionList& clang::driver::Action::getInputs ( )
inline
const ActionList& clang::driver::Action::getInputs ( ) const
inline

Definition at line 97 of file Action.h.

ActionClass clang::driver::Action::getKind ( ) const
inline
types::ID clang::driver::Action::getType ( ) const
inline
clang::driver::Action::Inputs ( Inputs  )
inlineprotected

Definition at line 86 of file Action.h.

size_type clang::driver::Action::size ( ) const
inline

Definition at line 99 of file Action.h.

Referenced by clang::driver::Driver::ShouldUseClangCompiler().

clang::driver::Action::Type ( Type  )
protected

Member Data Documentation

clang::driver::Action::Type
protected
Initial value:
{}
: Action(Kind, ActionList({Input}), Input->getType()) {}
Action(ActionClass Kind, const ActionList &Inputs, types::ID Type)
: Kind(Kind)

Definition at line 82 of file Action.h.


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