forked from OSchip/llvm-project
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
// RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
|
|
// RUN: grep -Ev "// *[A-Z-]+:" %s > %t_risky.cpp
|
|
// RUN: clang-modernize -loop-convert -use-nullptr %t.cpp -- -std=c++11
|
|
// RUN: FileCheck -input-file=%t.cpp %s
|
|
// RUN: clang-modernize -loop-convert -use-nullptr -risk=risky %t_risky.cpp -- -std=c++11
|
|
// RUN: FileCheck -check-prefix=RISKY -input-file=%t_risky.cpp %s
|
|
|
|
#define NULL 0
|
|
|
|
struct T {
|
|
struct iterator {
|
|
int *& operator*();
|
|
const int *& operator*() const;
|
|
iterator & operator++();
|
|
bool operator!=(const iterator &other);
|
|
void insert(int *);
|
|
int *x;
|
|
};
|
|
|
|
iterator begin();
|
|
iterator end();
|
|
};
|
|
|
|
void test_loopconvert_and_nullptr_iterator() {
|
|
T t;
|
|
|
|
for (T::iterator it = t.begin(); it != t.end(); ++it) {
|
|
*it = NULL;
|
|
}
|
|
|
|
// CHECK: for (auto & elem : t)
|
|
// CHECK-NEXT: elem = nullptr;
|
|
}
|
|
|
|
void test_loopconvert_and_nullptr_risky() {
|
|
const int N = 10;
|
|
int *(*pArr)[N];
|
|
|
|
for (int i = 0; i < N; ++i) {
|
|
(*pArr)[i] = NULL;
|
|
}
|
|
|
|
// RISKY: for (auto & elem : *pArr)
|
|
// RISKY-NEXT: elem = nullptr;
|
|
}
|