aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Driver/Action.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Driver/Action.h')
-rw-r--r--include/clang/Driver/Action.h27
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 {