Action.cpp revision 0c3f599bcaf79302caae6183464c9fe4532cbcd2
12fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar//===--- Action.cpp - Abstract compilation steps ------------------------*-===// 22fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar// 32fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar// The LLVM Compiler Infrastructure 42fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar// 52fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar// This file is distributed under the University of Illinois Open Source 62fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar// License. See LICENSE.TXT for details. 72fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar// 82fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar//===----------------------------------------------------------------------===// 92fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar 102fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar#include "clang/Driver/Action.h" 112fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar 122fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar#include <cassert> 132fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbarusing namespace clang::driver; 142fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel Dunbar 152fe63e6adac0b9e5f52bcc3100b545e379417e6eDaniel DunbarAction::~Action() {} 1685da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar 1785da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbarconst char *Action::getClassName(ActionClass AC) { 1885da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar switch (AC) { 1985da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar case InputClass: return "input"; 2085da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar case BindArchClass: return "bind-arch"; 21209333506a935c582a7d62ad470978baec71afdcDaniel Dunbar case PreprocessJobClass: return "preprocessor"; 22209333506a935c582a7d62ad470978baec71afdcDaniel Dunbar case PrecompileJobClass: return "precompiler"; 23209333506a935c582a7d62ad470978baec71afdcDaniel Dunbar case AnalyzeJobClass: return "analyzer"; 24209333506a935c582a7d62ad470978baec71afdcDaniel Dunbar case CompileJobClass: return "compiler"; 25209333506a935c582a7d62ad470978baec71afdcDaniel Dunbar case AssembleJobClass: return "assembler"; 26209333506a935c582a7d62ad470978baec71afdcDaniel Dunbar case LinkJobClass: return "linker"; 2785da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar case LipoJobClass: return "lipo"; 2885da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar } 2985da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar 3085da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar assert(0 && "invalid class"); 3185da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar return 0; 3285da0071a4ab7d6f06831d20bad79122d7407df7Daniel Dunbar} 33f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 34f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarInputAction::InputAction(const Arg &_Input, types::ID _Type) 35f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : Action(InputClass, _Type), Input(_Input) { 36f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 37f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 38f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarBindArchAction::BindArchAction(Action *Input, const char *_ArchName) 39f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : Action(BindArchClass, Input, Input->getType()), ArchName(_ArchName) { 40f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 41f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 42f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarJobAction::JobAction(ActionClass Kind, Action *Input, types::ID Type) 43f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : Action(Kind, Input, Type) { 44f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 45f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 46f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarJobAction::JobAction(ActionClass Kind, const ActionList &Inputs, types::ID Type) 47f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : Action(Kind, Inputs, Type) { 48f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 49f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 50f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarPreprocessJobAction::PreprocessJobAction(Action *Input, types::ID OutputType) 51f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(PreprocessJobClass, Input, OutputType) { 52f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 53f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 54f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarPrecompileJobAction::PrecompileJobAction(Action *Input, types::ID OutputType) 55f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(PrecompileJobClass, Input, OutputType) { 56f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 57f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 58f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarAnalyzeJobAction::AnalyzeJobAction(Action *Input, types::ID OutputType) 59f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(AnalyzeJobClass, Input, OutputType) { 60f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 61f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 62f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarCompileJobAction::CompileJobAction(Action *Input, types::ID OutputType) 63f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(CompileJobClass, Input, OutputType) { 64f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 65f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 66f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarAssembleJobAction::AssembleJobAction(Action *Input, types::ID OutputType) 67f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(AssembleJobClass, Input, OutputType) { 68f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 69f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 70f40ed17472a39097cc5039ed437445289487c9bfDaniel DunbarLinkJobAction::LinkJobAction(ActionList &Inputs, types::ID Type) 71f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(LinkJobClass, Inputs, Type) { 72f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 73f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar 740c3f599bcaf79302caae6183464c9fe4532cbcd2Daniel DunbarLipoJobAction::LipoJobAction(ActionList &Inputs, types::ID Type) 75f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar : JobAction(LipoJobClass, Inputs, Type) { 76f40ed17472a39097cc5039ed437445289487c9bfDaniel Dunbar} 77