summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-query/tool/ClangQuery.cpp
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2018-08-30 23:25:44 +0000
committerStephen Kelly <steveire@gmail.com>2018-08-30 23:25:44 +0000
commit7cbfd8bb2fd12d8442c9794bf7a1bb60a3221f18 (patch)
tree3af10f425fc6af608963ef340746570fc5347364 /clang-tools-extra/clang-query/tool/ClangQuery.cpp
parent7dfed0b22c27d69be338a89f9a1e5bf1e9653209 (diff)
downloadbcm5719-llvm-7cbfd8bb2fd12d8442c9794bf7a1bb60a3221f18.tar.gz
bcm5719-llvm-7cbfd8bb2fd12d8442c9794bf7a1bb60a3221f18.zip
Add preload option to clang-query
Summary: This allows loading a file with pre-defined let commands for example. Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D51261 llvm-svn: 341145
Diffstat (limited to 'clang-tools-extra/clang-query/tool/ClangQuery.cpp')
-rw-r--r--clang-tools-extra/clang-query/tool/ClangQuery.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-query/tool/ClangQuery.cpp b/clang-tools-extra/clang-query/tool/ClangQuery.cpp
index d0a4a80a370..26a2ccf6f62 100644
--- a/clang-tools-extra/clang-query/tool/ClangQuery.cpp
+++ b/clang-tools-extra/clang-query/tool/ClangQuery.cpp
@@ -58,6 +58,11 @@ static cl::list<std::string> CommandFiles("f",
cl::value_desc("file"),
cl::cat(ClangQueryCategory));
+static cl::opt<std::string> PreloadFile(
+ "preload",
+ cl::desc("Preload commands from file and start interactive mode"),
+ cl::value_desc("file"), cl::cat(ClangQueryCategory));
+
bool runCommandsInFile(const char *ExeName, std::string const &FileName,
QuerySession &QS) {
std::ifstream Input(FileName.c_str());
@@ -86,6 +91,12 @@ int main(int argc, const char **argv) {
return 1;
}
+ if ((!Commands.empty() || !CommandFiles.empty()) && !PreloadFile.empty()) {
+ llvm::errs() << argv[0]
+ << ": cannot specify both -c or -f with --preload\n";
+ return 1;
+ }
+
ClangTool Tool(OptionsParser.getCompilations(),
OptionsParser.getSourcePathList());
std::vector<std::unique_ptr<ASTUnit>> ASTs;
@@ -106,6 +117,10 @@ int main(int argc, const char **argv) {
return 1;
}
} else {
+ if (!PreloadFile.empty()) {
+ if (runCommandsInFile(argv[0], PreloadFile, QS))
+ return 1;
+ }
LineEditor LE("clang-query");
LE.setListCompleter([&QS](StringRef Line, size_t Pos) {
return QueryParser::complete(Line, Pos, QS);
OpenPOWER on IntegriCloud