summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-query/QueryParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-query/QueryParser.cpp')
-rw-r--r--clang-tools-extra/clang-query/QueryParser.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-query/QueryParser.cpp b/clang-tools-extra/clang-query/QueryParser.cpp
index eec32024945..b0dacea1004 100644
--- a/clang-tools-extra/clang-query/QueryParser.cpp
+++ b/clang-tools-extra/clang-query/QueryParser.cpp
@@ -119,7 +119,17 @@ QueryRef QueryParser::parseSetOutputKind() {
"expected 'diag', 'print', 'detailed-ast' or 'dump', got '" + ValStr +
"'");
}
- return new SetQuery<OutputKind>(&QuerySession::OutKind, OutputKind(OutKind));
+
+ switch (OutKind) {
+ case OK_DetailedAST:
+ return new SetExclusiveOutputQuery(&QuerySession::DetailedASTOutput);
+ case OK_Diag:
+ return new SetExclusiveOutputQuery(&QuerySession::DiagOutput);
+ case OK_Print:
+ return new SetExclusiveOutputQuery(&QuerySession::PrintOutput);
+ }
+
+ llvm_unreachable("Invalid output kind");
}
QueryRef QueryParser::endQuery(QueryRef Q) {
OpenPOWER on IntegriCloud