| File | Mode | Size |
|---|---|---|
| test-files/ | 040000 | |
| CMakeLists.txt | 100644 | 214B |
| LICENSE | 100644 | 18KiB |
| README.md | 100644 | 1,217B |
| for-postfix.cpp | 100644 | 3,774B |
Clang-based standalone tool that detects for-loops with postfix operators.
Input:
```c++
inline void doNothing() { // do nothing on purpose }
int main(void) { std::vector<int> v; typedef std::vector<int> intVector;
for (intVector::const_iterator cit = v.begin(); cit != v.end(); cit++) {
doNothing();
}
for (intVector::const_iterator cit = v.begin(); cit != v.end(); ++cit) {
doNothing();
}
for (intVector::const_iterator cit = v.begin(); cit != v.end(); cit--) {
doNothing();
}
for (intVector::const_iterator cit = v.begin(); cit != v.end(); --cit) {
doNothing();
}
return EXIT_SUCCESS;
}
Run command:
```sh
bin/for-postfix vector-all.cpp --
Output (paths are truncated):
.../vector-all.cpp:17:dangerous use of postfix operator
.../vector-all.cpp:25:dangerous use of postfix operator
llvm/tools/clang/tools/extra.add_subdirectory(for-postfix) to CMakeLists.txt in the same
directory.ninja for-postfix inside your LLVM's build/ directory.