From: Daniel Dunbar Date: Fri, 13 Mar 2009 23:08:03 +0000 (+0000) Subject: Driver: Provide food and shelter for Action vtables. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f40ed17472a39097cc5039ed437445289487c9bf;p=clang Driver: Provide food and shelter for Action vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66978 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Action.h b/include/clang/Driver/Action.h index 9cd17f76b9..a9da267a55 100644 --- a/include/clang/Driver/Action.h +++ b/include/clang/Driver/Action.h @@ -84,8 +84,7 @@ public: class InputAction : public Action { const Arg &Input; public: - InputAction(const Arg &_Input, types::ID _Type) : Action(InputClass, _Type), - Input(_Input) {} + InputAction(const Arg &_Input, types::ID _Type); const Arg &getInputArg() const { return Input; } @@ -99,9 +98,7 @@ class BindArchAction : public Action { const char *ArchName; public: - BindArchAction(Action *Input, const char *_ArchName) - : Action(BindArchClass, Input, Input->getType()), ArchName(_ArchName) { - } + BindArchAction(Action *Input, const char *_ArchName); const char *getArchName() const { return ArchName; } @@ -113,10 +110,8 @@ public: class JobAction : public Action { protected: - JobAction(ActionClass Kind, Action *Input, types::ID Type) - : Action(Kind, Input, Type) {} - JobAction(ActionClass Kind, const ActionList &Inputs, types::ID Type) - : Action(Kind, Inputs, Type) {} + JobAction(ActionClass Kind, Action *Input, types::ID Type); + JobAction(ActionClass Kind, const ActionList &Inputs, types::ID Type); public: static bool classof(const Action *A) { @@ -128,9 +123,7 @@ public: class PreprocessJobAction : public JobAction { public: - PreprocessJobAction(Action *Input, types::ID OutputType) - : JobAction(PreprocessJobClass, Input, OutputType) { - } + PreprocessJobAction(Action *Input, types::ID OutputType); static bool classof(const Action *A) { return A->getKind() == PreprocessJobClass; @@ -140,9 +133,7 @@ public: class PrecompileJobAction : public JobAction { public: - PrecompileJobAction(Action *Input, types::ID OutputType) - : JobAction(PrecompileJobClass, Input, OutputType) { - } + PrecompileJobAction(Action *Input, types::ID OutputType); static bool classof(const Action *A) { return A->getKind() == PrecompileJobClass; @@ -152,9 +143,7 @@ public: class AnalyzeJobAction : public JobAction { public: - AnalyzeJobAction(Action *Input, types::ID OutputType) - : JobAction(AnalyzeJobClass, Input, OutputType) { - } + AnalyzeJobAction(Action *Input, types::ID OutputType); static bool classof(const Action *A) { return A->getKind() == AnalyzeJobClass; @@ -164,9 +153,7 @@ public: class CompileJobAction : public JobAction { public: - CompileJobAction(Action *Input, types::ID OutputType) - : JobAction(CompileJobClass, Input, OutputType) { - } + CompileJobAction(Action *Input, types::ID OutputType); static bool classof(const Action *A) { return A->getKind() == CompileJobClass; @@ -176,9 +163,7 @@ public: class AssembleJobAction : public JobAction { public: - AssembleJobAction(Action *Input, types::ID OutputType) - : JobAction(AssembleJobClass, Input, OutputType) { - } + AssembleJobAction(Action *Input, types::ID OutputType); static bool classof(const Action *A) { return A->getKind() == AssembleJobClass; @@ -188,8 +173,7 @@ public: class LinkJobAction : public JobAction { public: - LinkJobAction(ActionList &Inputs, types::ID Type) - : JobAction(LinkJobClass, Inputs, Type) {} + LinkJobAction(ActionList &Inputs, types::ID Type); static bool classof(const Action *A) { return A->getKind() == LinkJobClass; @@ -199,8 +183,7 @@ public: class LipoJobAction : public JobAction { public: - LipoJobAction(ActionList &Inputs, types::ID Type) - : JobAction(LipoJobClass, Inputs, Type) {} + LipoJobAction(ActionList &Inputs, types::ID Type); static bool classof(const Action *A) { return A->getKind() == LipoJobClass; diff --git a/lib/Driver/Action.cpp b/lib/Driver/Action.cpp index 0ffc8f0f64..d4cdb13527 100644 --- a/lib/Driver/Action.cpp +++ b/lib/Driver/Action.cpp @@ -30,3 +30,47 @@ const char *Action::getClassName(ActionClass AC) { 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(ActionList &Inputs, types::ID Type) + : JobAction(LipoJobClass, Inputs, Type) { +}