| // RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp |
| // RUN: clang-modernize -loop-convert -risk=safe %t.cpp -- -I %S/Inputs |
| // RUN: FileCheck -input-file=%t.cpp %s |
| |
| #include "structures.h" |
| |
| // Single FileCheck line to make sure that no loops are converted. |
| // CHECK-NOT: for ({{.*[^:]:[^:].*}}) |
| |
| S s; |
| T t; |
| U u; |
| |
| void multipleEnd() { |
| for (S::iterator i = s.begin(); i != s.end(); ++i) |
| MutableVal k = *i; |
| |
| for (T::iterator i = t.begin(); i != t.end(); ++i) |
| int k = *i; |
| |
| for (U::iterator i = u.begin(); i != u.end(); ++i) |
| Val k = *i; |
| } |
| |
| void f(X); |
| void f(S); |
| void f(T); |
| |
| void complexContainer() { |
| X x; |
| for (S::iterator i = x.s.begin(), e = x.s.end(); i != e; ++i) { |
| f(x); |
| MutableVal k = *i; |
| } |
| |
| for (T::iterator i = x.t.begin(), e = x.t.end(); i != e; ++i) { |
| f(x); |
| int k = *i; |
| } |
| |
| for (S::iterator i = x.s.begin(), e = x.s.end(); i != e; ++i) { |
| f(x.s); |
| MutableVal k = *i; |
| } |
| |
| for (T::iterator i = x.t.begin(), e = x.t.end(); i != e; ++i) { |
| f(x.t); |
| int k = *i; |
| } |
| |
| for (S::iterator i = x.getS().begin(), e = x.getS().end(); i != e; ++i) { |
| f(x.getS()); |
| MutableVal k = *i; |
| } |
| |
| X exes[5]; |
| int index = 0; |
| |
| for (S::iterator i = exes[index].getS().begin(), |
| e = exes[index].getS().end(); i != e; ++i) { |
| index++; |
| MutableVal k = *i; |
| } |
| } |