diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2017-07-03 11:12:00 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2017-07-03 09:27:05 +0000 |
commit | dae4477cd367d115e2011cfedae6b1d5dbc22cb7 (patch) | |
tree | 5fa0ebf3db5cfe9f946c70e8c82f4bd09fca77db /src/tools/clangrefactoringbackend/source/clangquery.cpp | |
parent | 35ca318d187eb1356f36dce86946f12a530dfd6f (diff) | |
download | qt-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.cpp | 23 |
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); |