Action.cpp revision 263508
194742Sobrien//===--- Action.cpp - Abstract compilation steps --------------------------===// 294742Sobrien// 3146890Speter// The LLVM Compiler Infrastructure 4146890Speter// 5179626Speter// This file is distributed under the University of Illinois Open Source 6240316Seadler// License. See LICENSE.TXT for details. 7146890Speter// 8146890Speter//===----------------------------------------------------------------------===// 9146890Speter 10146890Speter#include "clang/Driver/Action.h" 11146890Speter#include "llvm/Support/ErrorHandling.h" 12146890Speter#include <cassert> 13146890Speterusing namespace clang::driver; 14146890Speterusing namespace llvm::opt; 15146890Speter 16146890SpeterAction::~Action() { 17146890Speter if (OwnsInputs) { 18146890Speter for (iterator it = begin(), ie = end(); it != ie; ++it) 19146890Speter delete *it; 20146890Speter } 2194742Sobrien} 2295253Sru 23159014Sjmgconst char *Action::getClassName(ActionClass AC) { 2496991Srwatson switch (AC) { 2596991Srwatson case InputClass: return "input"; 2696991Srwatson case BindArchClass: return "bind-arch"; 27102773Srwatson case PreprocessJobClass: return "preprocessor"; 28102773Srwatson case PrecompileJobClass: return "precompiler"; 29156279Srwatson case AnalyzeJobClass: return "analyzer"; 30156279Srwatson case MigrateJobClass: return "migrator"; 3194917Simp case CompileJobClass: return "compiler"; 32126445Sobrien case AssembleJobClass: return "assembler"; 3394917Simp case LinkJobClass: return "linker"; 34146933Simp case LipoJobClass: return "lipo"; 3594847Sjhb case DsymutilJobClass: return "dsymutil"; 3694847Sjhb case VerifyJobClass: return "verify"; 3794847Sjhb } 3894915Sken 3999607Smjacob llvm_unreachable("invalid class"); 4094915Sken} 4194915Sken 4294915Skenvoid InputAction::anchor() {} 4394915Sken 4494915SkenInputAction::InputAction(const Arg &_Input, types::ID _Type) 4594915Sken : Action(InputClass, _Type), Input(_Input) { 4694915Sken} 4794915Sken 48169922Sjfvvoid BindArchAction::anchor() {} 49219647Sdavidch 5097611SbillfBindArchAction::BindArchAction(Action *Input, const char *_ArchName) 5194918Sgshapiro : Action(BindArchClass, Input, Input->getType()), ArchName(_ArchName) { 5294918Sgshapiro} 5394918Sgshapiro 5494918Sgshapirovoid JobAction::anchor() {} 5594918Sgshapiro 56106187SdesJobAction::JobAction(ActionClass Kind, Action *Input, types::ID Type) 57106187Sdes : Action(Kind, Input, Type) { 5895455Sdes} 5998750Sdes 60205686SdesJobAction::JobAction(ActionClass Kind, const ActionList &Inputs, types::ID Type) 61205686Sdes : Action(Kind, Inputs, Type) { 62205686Sdes} 6396268Sgad 6496268Sgadvoid PreprocessJobAction::anchor() {} 65116233Sgad 6696332SpeterPreprocessJobAction::PreprocessJobAction(Action *Input, types::ID OutputType) 6796332Speter : JobAction(PreprocessJobClass, Input, OutputType) { 6896332Speter} 69100314Sru 70146921Sruvoid PrecompileJobAction::anchor() {} 71146921Sru 7297611SbillfPrecompileJobAction::PrecompileJobAction(Action *Input, types::ID OutputType) 73190171Srnoland : JobAction(PrecompileJobClass, Input, OutputType) { 74115825Sfanf} 75126445Sobrien 76117645Sdwmalonevoid AnalyzeJobAction::anchor() {} 77118204Sbp 78118204SbpAnalyzeJobAction::AnalyzeJobAction(Action *Input, types::ID OutputType) 79127337Smlaier : JobAction(AnalyzeJobClass, Input, OutputType) { 80126445Sobrien} 81146837Sobrien 82146837Sobrienvoid MigrateJobAction::anchor() {} 83146837Sobrien 84146837SobrienMigrateJobAction::MigrateJobAction(Action *Input, types::ID OutputType) 85133182Spjd : JobAction(MigrateJobClass, Input, OutputType) { 86148779Spjd} 87133182Spjd 88133182Spjdvoid CompileJobAction::anchor() {} 89133182Spjd 90133182SpjdCompileJobAction::CompileJobAction(Action *Input, types::ID OutputType) 91133841Spjd : JobAction(CompileJobClass, Input, OutputType) { 92143521Spjd} 93133182Spjd 94148779Spjdvoid AssembleJobAction::anchor() {} 95133182Spjd 96168419SpjdAssembleJobAction::AssembleJobAction(Action *Input, types::ID OutputType) 97132311Salfred : JobAction(AssembleJobClass, Input, OutputType) { 98132311Salfred} 99132311Salfred 100132268Salfredvoid LinkJobAction::anchor() {} 101195405Sflz 102146960SimpLinkJobAction::LinkJobAction(ActionList &Inputs, types::ID Type) 103148772Scperciva : JobAction(LinkJobClass, Inputs, Type) { 104148871Scperciva} 105161748Scperciva 106221900Scpercivavoid LipoJobAction::anchor() {} 107149464Semax 108149464SemaxLipoJobAction::LipoJobAction(ActionList &Inputs, types::ID Type) 109149464Semax : JobAction(LipoJobClass, Inputs, Type) { 110149464Semax} 111149464Semax 112151618Scerivoid DsymutilJobAction::anchor() {} 113200194Scperciva 114200194ScpercivaDsymutilJobAction::DsymutilJobAction(ActionList &Inputs, types::ID Type) 115204061Sedwin : JobAction(DsymutilJobClass, Inputs, Type) { 116204061Sedwin} 117204061Sedwin 118204061Sedwinvoid VerifyJobAction::anchor() {} 119204061Sedwin 120204061SedwinVerifyJobAction::VerifyJobAction(ActionList &Inputs, types::ID Type) 121206455Sbms : JobAction(VerifyJobClass, Inputs, Type) { 122230843Sjimharris} 123241828Seadler