1 //===--- Job.cpp - Command to Execute -----------------------------------*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "clang/Driver/Job.h" 11 12 #include <cassert> 13 using namespace clang::driver; 14 15 Job::~Job() {} 16 17 Command::Command(const Action &_Source, const char *_Executable, 18 const ArgStringList &_Arguments) 19 : Job(CommandClass), Source(_Source), Executable(_Executable), 20 Arguments(_Arguments) { 21 } 22 23 PipedJob::PipedJob() : Job(PipedJobClass) {} 24 25 JobList::JobList() : Job(JobListClass) {} 26 27 void Job::addCommand(Command *C) { 28 if (PipedJob *PJ = dyn_cast<PipedJob>(this)) 29 PJ->addCommand(C); 30 else 31 cast<JobList>(this)->addJob(C); 32 } 33 34