summaryrefslogtreecommitdiff
path: root/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2016-11-29 12:50:18 +0100
committerMarco Bubke <marco.bubke@qt.io>2016-12-07 11:40:30 +0000
commit6f362072d6cf1ce56d4d24982ae0730cd844dead (patch)
treec1e4191838caec1b4fa062b3f854d656e90cccde /src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp
parent15de02ea0c92948e1c51b5da11541c2d382b79ca (diff)
downloadqt-creator-6f362072d6cf1ce56d4d24982ae0730cd844dead.tar.gz
Clang: Workaround missing std::make_reverse_iterator
Because of the ancient compiler support we cannot use std::make_reverse_iterator. If we support newer compilers we can revert this patch. Change-Id: I9b20ab1e53a0e9784b0455eafbbfd966797ad91e Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp')
-rw-r--r--src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp b/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp
index 2a79260349..97036695e7 100644
--- a/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp
+++ b/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp
@@ -55,12 +55,20 @@ SourceRangeExtractor::SourceRangeExtractor(const clang::SourceManager &sourceMan
{
}
+namespace {
+template<typename Iterator>
+std::reverse_iterator<Iterator> make_reverse_iterator(Iterator iterator)
+{
+ return std::reverse_iterator<Iterator>(iterator);
+}
+}
+
const char *SourceRangeExtractor::findStartOfLineInBuffer(llvm::StringRef buffer, uint startOffset)
{
auto beginText = buffer.begin() + startOffset;
- auto reverseEnd = std::make_reverse_iterator(buffer.begin());
+ auto reverseEnd = make_reverse_iterator(buffer.begin());
- auto found = std::find_if(std::make_reverse_iterator(beginText),
+ auto found = std::find_if(make_reverse_iterator(beginText),
reverseEnd,
[] (const char character) {
return character == '\n' || character == '\r';