llvm-project/clang-tools-extra/clang-tidy
Nathan James 8a548bc203
[clang-tidy] modernize-loop-convert reverse iteration support
Enables support for transforming loops of the form
```
for (auto I = Cont.rbegin(), E = Cont.rend(); I != E;++I)
```

This is done automatically in C++20 mode using `std::ranges::reverse_view` but there are options to specify a different function to reverse iterator over a container.
This is the first step, down the line I'd like to possibly extend this support for array based loops
```
for (unsigned I = Arr.size() - 1;I >=0;--I) Arr[I]...
```

Currently if you pass a reversing function with no header in the options it will just assume that the function exists, however as we have the ASTContext it may be as wise to check before applying, or at least lower the confidence level if we can't find it.

Reviewed By: alexfh

Differential Revision: https://reviews.llvm.org/D82089
2020-10-16 14:16:30 +01:00
..
abseil [clang-tidy] IncludeInserter: allow <> in header name 2020-09-28 15:14:04 +02:00
altera [clang-tidy] Fix linking for FrontendOpenMP 2020-09-08 09:22:22 -07:00
android Allow to specify macro names for android-comparison-in-temp-failure-retry 2020-10-01 10:09:26 -07:00
boost [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
bugprone clang-{tools,unittests}: Stop using SourceManager::getBuffer, NFC 2020-10-15 00:35:16 -04:00
cert [NFC] Use hasAnyName matcher in place of anyOf(hasName()...) 2020-07-07 14:31:04 +01:00
cppcoreguidelines [clang-tidy] IncludeInserter: allow <> in header name 2020-09-28 15:14:04 +02:00
darwin [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
fuchsia [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
google [clang-tidy] Remove obsolete checker google-runtime-references 2020-10-06 14:03:55 +02:00
hicpp [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
linuxkernel [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
llvm [NFC] Use hasAnyName matcher in place of anyOf(hasName()...) 2020-07-07 14:31:04 +01:00
llvmlibc [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
misc clang-{tools,unittests}: Stop using SourceManager::getBuffer, NFC 2020-10-15 00:35:16 -04:00
modernize [clang-tidy] modernize-loop-convert reverse iteration support 2020-10-16 14:16:30 +01:00
mpi [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
objc [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
openmp [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
performance [clang-tidy] IncludeInserter: allow <> in header name 2020-09-28 15:14:04 +02:00
plugin [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
portability [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
readability clang-{tools,unittests}: Stop using SourceManager::getBuffer, NFC 2020-10-15 00:35:16 -04:00
tool Fix -allow-enabling-analyzer-alpha-checkers always being passed to run-clang-tidy.py 2020-08-20 09:15:29 -04:00
utils Support ObjC in IncludeInserter 2020-10-16 04:12:32 +02:00
zircon [openmp] Add missing dependencies for OMP.h.inc after d90443b 2020-06-23 11:48:04 -04:00
CMakeLists.txt Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
ClangTidy.cpp Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
ClangTidy.h [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
ClangTidyCheck.cpp [clang-tidy][NFC] Added convienence methods for getting optional options 2020-08-01 01:45:34 +01:00
ClangTidyCheck.h [clang-tidy][NFC] Added convienence methods for getting optional options 2020-08-01 01:45:34 +01:00
ClangTidyDiagnosticConsumer.cpp clang/Basic: Replace ContentCache::getBuffer with Optional semantics 2020-10-14 15:55:18 -04:00
ClangTidyDiagnosticConsumer.h Add missing #include 2020-06-29 22:08:20 -07:00
ClangTidyForceLinker.h Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
ClangTidyModule.cpp [clang-tidy][NFC] Use StringMap for ClangTidyCheckFactories::FacoryMap 2020-07-30 22:57:33 +01:00
ClangTidyModule.h [clang-tidy][NFC] Use StringMap for ClangTidyCheckFactories::FacoryMap 2020-07-30 22:57:33 +01:00
ClangTidyModuleRegistry.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ClangTidyOptions.cpp [clang-tidy] Fix build problem after commit 45a720a864 2020-07-31 14:29:03 +02:00
ClangTidyOptions.h [clang-tidy] Use StringMap for ClangTidyOptions::OptionsMap 2020-07-30 10:31:13 +01:00
ClangTidyProfiling.cpp Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
ClangTidyProfiling.h [clang-tidy][NFC] Remove unnecessary includes throughout clang-tidy header files 2020-06-29 16:05:52 +01:00
ExpandModularHeadersPPCallbacks.cpp Prune TargetInfo.h include from ParsedAttr.h, NFC 2020-03-11 20:47:11 -07:00
ExpandModularHeadersPPCallbacks.h Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
GlobList.cpp Refactor GlobList from an ad-hoc linked list to a vector 2019-08-27 10:56:13 +00:00
GlobList.h Refactor GlobList from an ad-hoc linked list to a vector 2019-08-27 10:56:13 +00:00
add_new_check.py [clang-tidy] prevent generated checks from triggering assertions on anonymous functions 2020-08-12 12:43:40 +01:00
clang-tidy-config.h.cmake Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
rename_check.py [clang-tidy] NFC: Cleanup Python scripts 2020-05-18 12:21:27 +02:00