aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Tooling/ArgumentsAdjusters.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Tooling/ArgumentsAdjusters.h')
-rw-r--r--include/clang/Tooling/ArgumentsAdjusters.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/include/clang/Tooling/ArgumentsAdjusters.h b/include/clang/Tooling/ArgumentsAdjusters.h
index 765e7d2e05..30bca9bb41 100644
--- a/include/clang/Tooling/ArgumentsAdjusters.h
+++ b/include/clang/Tooling/ArgumentsAdjusters.h
@@ -40,8 +40,7 @@ public:
///
/// \returns Modified sequence of command line arguments.
virtual CommandLineArguments Adjust(const CommandLineArguments &Args) = 0;
- virtual ~ArgumentsAdjuster() {
- }
+ virtual ~ArgumentsAdjuster() {}
};
/// \brief Syntax check only command line adjuster.
@@ -58,6 +57,22 @@ class ClangStripOutputAdjuster : public ArgumentsAdjuster {
CommandLineArguments Adjust(const CommandLineArguments &Args) override;
};
+class InsertArgumentAdjuster : public ArgumentsAdjuster {
+public:
+ enum Position { BEGIN, END };
+
+ InsertArgumentAdjuster(const CommandLineArguments &Extra, Position Pos)
+ : Extra(Extra), Pos(Pos) {}
+
+ InsertArgumentAdjuster(const char *Extra, Position Pos)
+ : Extra(1, std::string(Extra)), Pos(Pos) {}
+
+ CommandLineArguments Adjust(const CommandLineArguments &Args) override;
+
+private:
+ const CommandLineArguments Extra;
+ const Position Pos;
+};
} // end namespace tooling
} // end namespace clang