For Loop Conversion
[lldb.git] / clang-tools-extra / test / loop-convert / negative-pseudoarray-extra.cpp
1 // RUN: rm -rf %t.cpp
2 // RUN: grep -Ev "//\s*[A-Z-]+:" %s > %t.cpp
3 // RUN: loop-convert -A1 . %t.cpp -- -I %S/Inputs \
4 // RUN:         && FileCheck -input-file=%t.cpp %s
5
6 #include "structures.h"
7
8 // Single FileCheck line to make sure that no loops are converted.
9 // CHECK-NOT: for ({{.*[^:]:[^:].*}})
10
11 const int N = 6;
12 dependent<int> v;
13 dependent<int> *pv;
14
15 int sum = 0;
16
17 // Checks to see that non-const member functions are not called on the container
18 // object.
19 // These could be conceivably allowed with a lower required confidence level.
20 void memberFunctionCalled() {
21   for (int i = 0; i < v.size(); ++i) {
22     sum += v[i];
23     v.foo();
24   }
25
26   for (int i = 0; i < v.size(); ++i) {
27     sum += v[i];
28     dependent<int>::iterator it = v.begin();
29   }
30 }