forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
//===--- Action.cpp - Abstract compilation steps --------------------------===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "clang/Driver/Action.h"
 | 
						|
 | 
						|
#include <cassert>
 | 
						|
using namespace clang::driver;
 | 
						|
 | 
						|
Action::~Action() {
 | 
						|
  if (OwnsInputs) {
 | 
						|
    for (iterator it = begin(), ie = end(); it != ie; ++it)
 | 
						|
      delete *it;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
const char *Action::getClassName(ActionClass AC) {
 | 
						|
  switch (AC) {
 | 
						|
  case InputClass: return "input";
 | 
						|
  case BindArchClass: return "bind-arch";
 | 
						|
  case PreprocessJobClass: return "preprocessor";
 | 
						|
  case PrecompileJobClass: return "precompiler";
 | 
						|
  case AnalyzeJobClass: return "analyzer";
 | 
						|
  case CompileJobClass: return "compiler";
 | 
						|
  case AssembleJobClass: return "assembler";
 | 
						|
  case LinkJobClass: return "linker";
 | 
						|
  case LipoJobClass: return "lipo";
 | 
						|
  case DsymutilJobClass: return "dsymutil";
 | 
						|
  }
 | 
						|
 | 
						|
  assert(0 && "invalid class");
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
InputAction::InputAction(const Arg &_Input, types::ID _Type)
 | 
						|
  : Action(InputClass, _Type), Input(_Input) {
 | 
						|
}
 | 
						|
 | 
						|
BindArchAction::BindArchAction(Action *Input, const char *_ArchName)
 | 
						|
  : Action(BindArchClass, Input, Input->getType()), ArchName(_ArchName) {
 | 
						|
}
 | 
						|
 | 
						|
JobAction::JobAction(ActionClass Kind, Action *Input, types::ID Type)
 | 
						|
  : Action(Kind, Input, Type) {
 | 
						|
}
 | 
						|
 | 
						|
JobAction::JobAction(ActionClass Kind, const ActionList &Inputs, types::ID Type)
 | 
						|
  : Action(Kind, Inputs, Type) {
 | 
						|
}
 | 
						|
 | 
						|
PreprocessJobAction::PreprocessJobAction(Action *Input, types::ID OutputType)
 | 
						|
  : JobAction(PreprocessJobClass, Input, OutputType) {
 | 
						|
}
 | 
						|
 | 
						|
PrecompileJobAction::PrecompileJobAction(Action *Input, types::ID OutputType)
 | 
						|
  : JobAction(PrecompileJobClass, Input, OutputType) {
 | 
						|
}
 | 
						|
 | 
						|
AnalyzeJobAction::AnalyzeJobAction(Action *Input, types::ID OutputType)
 | 
						|
  : JobAction(AnalyzeJobClass, Input, OutputType) {
 | 
						|
}
 | 
						|
 | 
						|
CompileJobAction::CompileJobAction(Action *Input, types::ID OutputType)
 | 
						|
  : JobAction(CompileJobClass, Input, OutputType) {
 | 
						|
}
 | 
						|
 | 
						|
AssembleJobAction::AssembleJobAction(Action *Input, types::ID OutputType)
 | 
						|
  : JobAction(AssembleJobClass, Input, OutputType) {
 | 
						|
}
 | 
						|
 | 
						|
LinkJobAction::LinkJobAction(ActionList &Inputs, types::ID Type)
 | 
						|
  : JobAction(LinkJobClass, Inputs, Type) {
 | 
						|
}
 | 
						|
 | 
						|
LipoJobAction::LipoJobAction(ActionList &Inputs, types::ID Type)
 | 
						|
  : JobAction(LipoJobClass, Inputs, Type) {
 | 
						|
}
 | 
						|
 | 
						|
DsymutilJobAction::DsymutilJobAction(ActionList &Inputs, types::ID Type)
 | 
						|
  : JobAction(DsymutilJobClass, Inputs, Type) {
 | 
						|
}
 |