diff options
Diffstat (limited to 'include/clang/Driver/Action.h')
-rw-r--r-- | include/clang/Driver/Action.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/include/clang/Driver/Action.h b/include/clang/Driver/Action.h index 723fbbed3598..f4aaa6c544ac 100644 --- a/include/clang/Driver/Action.h +++ b/include/clang/Driver/Action.h @@ -59,6 +59,7 @@ public: OffloadClass, PreprocessJobClass, PrecompileJobClass, + HeaderModulePrecompileJobClass, AnalyzeJobClass, MigrateJobClass, CompileJobClass, @@ -398,12 +399,36 @@ public: class PrecompileJobAction : public JobAction { void anchor() override; +protected: + PrecompileJobAction(ActionClass Kind, Action *Input, types::ID OutputType); + public: PrecompileJobAction(Action *Input, types::ID OutputType); static bool classof(const Action *A) { - return A->getKind() == PrecompileJobClass; + return A->getKind() == PrecompileJobClass || + A->getKind() == HeaderModulePrecompileJobClass; + } +}; + +class HeaderModulePrecompileJobAction : public PrecompileJobAction { + void anchor() override; + + const char *ModuleName; + +public: + HeaderModulePrecompileJobAction(Action *Input, types::ID OutputType, + const char *ModuleName); + + static bool classof(const Action *A) { + return A->getKind() == HeaderModulePrecompileJobClass; } + + void addModuleHeaderInput(Action *Input) { + getInputs().push_back(Input); + } + + const char *getModuleName() const { return ModuleName; } }; class AnalyzeJobAction : public JobAction { |