// Checks to see that non-const member functions are not called on the container // object. // These could be conceivably allowed with a lower required confidence level. void memberFunctionCalled() { for (int i = 0; i < v.size(); ++i) { sum += v[i]; v.foo(); } for (int i = 0; i < v.size(); ++i) { sum += v[i]; dependent<int>::iterator it = v.begin(); } }
void constRef(const dependent<int>& ConstVRef) { int sum = 0; // FIXME: This does not work with size_t (probably due to the implementation // of dependent); make dependent work exactly like a std container type. for (int i = 0; i < ConstVRef.size(); ++i) { sum += ConstVRef[i]; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (int Elem : ConstVRef) // CHECK-FIXES-NEXT: sum += Elem; for (auto I = ConstVRef.begin(), E = ConstVRef.end(); I != E; ++I) { sum += *I; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (int Elem : ConstVRef) // CHECK-FIXES-NEXT: sum += Elem; }