diff options
author | David Blaikie <dblaikie@gmail.com> | 2011-12-20 02:48:34 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2011-12-20 02:48:34 +0000 |
commit | 99ba9e3bd70671f3441fb974895f226a83ce0e66 (patch) | |
tree | 8345d41be8d8a7c5b452dcb423f9251c435e0025 /lib/Driver | |
parent | f6702a3927147655206ae729a84339c4fda4c651 (diff) |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146959 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver')
-rw-r--r-- | lib/Driver/Action.cpp | 24 | ||||
-rw-r--r-- | lib/Driver/Job.cpp | 2 | ||||
-rw-r--r-- | lib/Driver/ToolChains.cpp | 2 | ||||
-rw-r--r-- | lib/Driver/ToolChains.h | 3 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 4 | ||||
-rw-r--r-- | lib/Driver/Tools.h | 2 |
6 files changed, 36 insertions, 1 deletions
diff --git a/lib/Driver/Action.cpp b/lib/Driver/Action.cpp index 52c0dbb5f1..a9dc17b320 100644 --- a/lib/Driver/Action.cpp +++ b/lib/Driver/Action.cpp @@ -38,14 +38,20 @@ const char *Action::getClassName(ActionClass AC) { llvm_unreachable("invalid class"); } +void InputAction::anchor() {} + InputAction::InputAction(const Arg &_Input, types::ID _Type) : Action(InputClass, _Type), Input(_Input) { } +void BindArchAction::anchor() {} + BindArchAction::BindArchAction(Action *Input, const char *_ArchName) : Action(BindArchClass, Input, Input->getType()), ArchName(_ArchName) { } +void JobAction::anchor() {} + JobAction::JobAction(ActionClass Kind, Action *Input, types::ID Type) : Action(Kind, Input, Type) { } @@ -54,38 +60,56 @@ JobAction::JobAction(ActionClass Kind, const ActionList &Inputs, types::ID Type) : Action(Kind, Inputs, Type) { } +void PreprocessJobAction::anchor() {} + PreprocessJobAction::PreprocessJobAction(Action *Input, types::ID OutputType) : JobAction(PreprocessJobClass, Input, OutputType) { } +void PrecompileJobAction::anchor() {} + PrecompileJobAction::PrecompileJobAction(Action *Input, types::ID OutputType) : JobAction(PrecompileJobClass, Input, OutputType) { } +void AnalyzeJobAction::anchor() {} + AnalyzeJobAction::AnalyzeJobAction(Action *Input, types::ID OutputType) : JobAction(AnalyzeJobClass, Input, OutputType) { } +void CompileJobAction::anchor() {} + CompileJobAction::CompileJobAction(Action *Input, types::ID OutputType) : JobAction(CompileJobClass, Input, OutputType) { } +void AssembleJobAction::anchor() {} + AssembleJobAction::AssembleJobAction(Action *Input, types::ID OutputType) : JobAction(AssembleJobClass, Input, OutputType) { } +void LinkJobAction::anchor() {} + LinkJobAction::LinkJobAction(ActionList &Inputs, types::ID Type) : JobAction(LinkJobClass, Inputs, Type) { } +void LipoJobAction::anchor() {} + LipoJobAction::LipoJobAction(ActionList &Inputs, types::ID Type) : JobAction(LipoJobClass, Inputs, Type) { } +void DsymutilJobAction::anchor() {} + DsymutilJobAction::DsymutilJobAction(ActionList &Inputs, types::ID Type) : JobAction(DsymutilJobClass, Inputs, Type) { } +void VerifyJobAction::anchor() {} + VerifyJobAction::VerifyJobAction(ActionList &Inputs, types::ID Type) : JobAction(VerifyJobClass, Inputs, Type) { } diff --git a/lib/Driver/Job.cpp b/lib/Driver/Job.cpp index 5443d70e82..825c86a826 100644 --- a/lib/Driver/Job.cpp +++ b/lib/Driver/Job.cpp @@ -16,6 +16,8 @@ using namespace clang::driver; Job::~Job() {} +void Command::anchor() {} + Command::Command(const Action &_Source, const Tool &_Creator, const char *_Executable, const ArgStringList &_Arguments) : Job(CommandClass), Source(_Source), Creator(_Creator), diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 728255e3fb..b53f2d3388 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -192,6 +192,8 @@ std::string Darwin::ComputeEffectiveClangTriple(const ArgList &Args, return Triple.getTriple(); } +void Generic_ELF::anchor() {} + Tool &Darwin::SelectTool(const Compilation &C, const JobAction &JA, const ActionList &Inputs) const { Action::ActionClass Key; diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index 6772477eb4..c0860c5263 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -423,7 +423,8 @@ public: }; class LLVM_LIBRARY_VISIBILITY Generic_ELF : public Generic_GCC { - public: + virtual void anchor(); +public: Generic_ELF(const HostInfo &Host, const llvm::Triple& Triple) : Generic_GCC(Host, Triple) {} diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index c8f99c4f91..d99b4f2fce 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2865,6 +2865,8 @@ const char *darwin::CC1::getCC1Name(types::ID Type) const { } } +void darwin::CC1::anchor() {} + const char *darwin::CC1::getBaseInputName(const ArgList &Args, const InputInfoList &Inputs) { return Args.MakeArgString( @@ -3509,6 +3511,8 @@ void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA, C.addCommand(new Command(JA, *this, Exec, CmdArgs)); } +void darwin::DarwinTool::anchor() {} + void darwin::DarwinTool::AddDarwinArch(const ArgList &Args, ArgStringList &CmdArgs) const { StringRef ArchName = getDarwinToolChain().getDarwinArchName(Args); diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h index c06e22b1d5..b304e9626a 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h @@ -192,6 +192,7 @@ namespace hexagon { namespace darwin { class LLVM_LIBRARY_VISIBILITY DarwinTool : public Tool { + virtual void anchor(); protected: void AddDarwinArch(const ArgList &Args, ArgStringList &CmdArgs) const; @@ -205,6 +206,7 @@ namespace darwin { }; class LLVM_LIBRARY_VISIBILITY CC1 : public DarwinTool { + virtual void anchor(); public: static const char *getBaseInputName(const ArgList &Args, const InputInfoList &Input); |