diff options
Diffstat (limited to 'interceptor.cc')
-rw-r--r-- | interceptor.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/interceptor.cc b/interceptor.cc index 30eab52..4d4e84c 100644 --- a/interceptor.cc +++ b/interceptor.cc @@ -179,6 +179,8 @@ class Analyzer { virtual bool should_recurse(Command*) const { return true; } virtual bool make_fake(Command*) const { return false; } + virtual std::string name() const { return "Generic"; }; + protected: virtual InputsOutputs determine_inputs_outputs(const Command&) const { return {}; } }; @@ -220,6 +222,8 @@ int default_fake(Command* command) { } class CompileLinkerAnalyzer : public Analyzer { + std::string name() const final { return "CompilerLinker"; }; + InputsOutputs determine_inputs_outputs(const Command& command) const final { static constexpr std::array kSkipNextArguments{ "-isystem", "-I", "-L", "-m", "-soname", "-z", @@ -276,6 +280,8 @@ class CompileLinkerAnalyzer : public Analyzer { }; class ArchiverAnalyzer : public Analyzer { + std::string name() const final { return "Archiver"; }; + InputsOutputs determine_inputs_outputs(const Command& command) const final { InputsOutputs result; @@ -301,6 +307,8 @@ class ArchiverAnalyzer : public Analyzer { }; class FixdepAnalyzer : public Analyzer { + std::string name() const final { return "Fixdep"; }; + InputsOutputs determine_inputs_outputs(const Command& command) const final { InputsOutputs result; const auto& arguments = command.arguments(); @@ -365,6 +373,7 @@ static std::optional<interceptor::Command> process_command(const char* filename, auto command = interceptor::instantiate_command(filename, argv, envp); const auto analyzer = interceptor::Analyzer::get(command); + command.set_analyzer(analyzer->name()); bool transformed = false; |