summaryrefslogtreecommitdiff
path: root/src/tools/clangrefactoringbackend/source/clangquery.cpp
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2017-07-03 11:12:00 +0200
committerTim Jenssen <tim.jenssen@qt.io>2017-07-03 09:27:05 +0000
commitdae4477cd367d115e2011cfedae6b1d5dbc22cb7 (patch)
tree5fa0ebf3db5cfe9f946c70e8c82f4bd09fca77db /src/tools/clangrefactoringbackend/source/clangquery.cpp
parent35ca318d187eb1356f36dce86946f12a530dfd6f (diff)
downloadqt-creator-dae4477cd367d115e2011cfedae6b1d5dbc22cb7.tar.gz
Clang: Make file ids unique
Clang file ids are only unique for one query. Because we query in parallel we have to manage our own unique ids. Change-Id: I67d57d8b1766cab75ad252a14e57bbf9dc5fdb79 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/tools/clangrefactoringbackend/source/clangquery.cpp')
-rw-r--r--src/tools/clangrefactoringbackend/source/clangquery.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/tools/clangrefactoringbackend/source/clangquery.cpp b/src/tools/clangrefactoringbackend/source/clangquery.cpp
index d24b981f45..be93b61a1a 100644
--- a/src/tools/clangrefactoringbackend/source/clangquery.cpp
+++ b/src/tools/clangrefactoringbackend/source/clangquery.cpp
@@ -30,27 +30,15 @@
#include <sourcerangescontainer.h>
-#include <QTime>
+#include <stringcache.h>
-#if defined(__GNUC__)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wunused-parameter"
-#elif defined(_MSC_VER)
-# pragma warning(push)
-# pragma warning( disable : 4100 )
-#endif
+#include <QTime>
#include <clang/ASTMatchers/ASTMatchers.h>
#include <clang/ASTMatchers/ASTMatchFinder.h>
#include <clang/ASTMatchers/Dynamic/Diagnostics.h>
#include <clang/ASTMatchers/Dynamic/Parser.h>
-#if defined(__GNUC__)
-# pragma GCC diagnostic pop
-#elif defined(_MSC_VER)
-# pragma warning(pop)
-#endif
-
using clang::ast_matchers::dynamic::Diagnostics;
using clang::ast_matchers::dynamic::Parser;
using clang::ast_matchers::BoundNodes;
@@ -66,8 +54,10 @@ struct CollectBoundNodes : MatchFinder::MatchCallback {
}
};
-ClangQuery::ClangQuery(Utils::SmallString &&query)
- : query(std::move(query))
+ClangQuery::ClangQuery(StringCache<Utils::PathString, std::mutex> &filePathCache,
+ Utils::SmallString &&query)
+ : query(std::move(query)),
+ filePathCache(filePathCache)
{
}
@@ -226,6 +216,7 @@ void ClangQuery::matchLocation(
SourceRangeExtractor extractor(ast->getSourceManager(),
ast->getLangOpts(),
+ filePathCache,
sourceRangesContainer);
extractor.addSourceRanges(sourceRanges);