blob: 280e7c4a5a09dec9bd2e83d740c3b02e8cec4621 [file] [log] [blame]
Daniel Dunbar789e2202009-03-13 23:36:33 +00001//===--- 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>
13using namespace clang::driver;
14
15Job::~Job() {}
16
Mike Stump1eb44332009-09-09 15:08:12 +000017Command::Command(const Action &_Source, const char *_Executable,
Daniel Dunbarcae087e2009-07-01 19:02:28 +000018 const ArgStringList &_Arguments)
Mike Stump1eb44332009-09-09 15:08:12 +000019 : Job(CommandClass), Source(_Source), Executable(_Executable),
Daniel Dunbarcae087e2009-07-01 19:02:28 +000020 Arguments(_Arguments) {
Daniel Dunbar789e2202009-03-13 23:36:33 +000021}
22
23PipedJob::PipedJob() : Job(PipedJobClass) {}
24
25JobList::JobList() : Job(JobListClass) {}
Daniel Dunbar871adcf2009-03-18 07:06:02 +000026
27void 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}
Mike Stump1eb44332009-09-09 15:08:12 +000033