[clang-tidy] modernize-loop-convert: impl const cast iter
authorDon Hinton <hintonda@gmail.com>
Wed, 15 May 2019 16:58:58 +0000 (16:58 +0000)
committerDon Hinton <hintonda@gmail.com>
Wed, 15 May 2019 16:58:58 +0000 (16:58 +0000)
commit42d28be802fe5beab18bc1a27f89894c0a290d44
treea916b0fe86a93daa14b4e208ed06f0eba4b337d3
parent6ebb785bb1fda1c1d23dae601941edab1ca5dd79
[clang-tidy] modernize-loop-convert: impl const cast iter

Summary:
modernize-loop-convert was not detecting implicit casts to
const_iterator as convertible to range-based loops:

    std::vector<int> vec{1,2,3,4}
    for(std::vector<int>::const_iterator i = vec.begin();
        i != vec.end();
        ++i) { }

Thanks to Don Hinton for advice.

As well, this change adds a note for this check's applicability to code
targeting OpenMP prior to version 5 as this check will continue breaking
compilation with `-fopenmp`. Thanks to Roman Lebedev for pointing this
out.

Fixes PR#35082

Reviewed By: hintonda

Tags: #clang-tools-extra, #clang

Differential Revision: https://reviews.llvm.org/D61827

llvm-svn: 360785
clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
clang-tools-extra/docs/clang-tidy/checks/modernize-loop-convert.rst
clang-tools-extra/docs/clang-tidy/index.rst
clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp
clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp