forked from OSchip/llvm-project
35 lines
1009 B
C++
35 lines
1009 B
C++
// RUN: %check_clang_tidy %s readability-misplaced-array-index %t
|
|
|
|
#define ABC "abc"
|
|
|
|
struct XY { int *X; int *Y; };
|
|
|
|
void dostuff(int);
|
|
|
|
void unusualSyntax(int *P1, struct XY *P2) {
|
|
10[P1] = 0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: confusing array subscript expression, usually the index is inside the []
|
|
// CHECK-FIXES: P1[10] = 0;
|
|
|
|
10[P2->X] = 0;
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: confusing array subscript expression
|
|
// CHECK-FIXES: P2->X[10] = 0;
|
|
|
|
dostuff(1["abc"]);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: confusing array subscript expression
|
|
// CHECK-FIXES: dostuff("abc"[1]);
|
|
|
|
dostuff(1[ABC]);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: confusing array subscript expression
|
|
// CHECK-FIXES: dostuff(ABC[1]);
|
|
|
|
dostuff(0[0 + ABC]);
|
|
// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: confusing array subscript expression
|
|
// CHECK-FIXES: dostuff(0[0 + ABC]);
|
|
// No fixit. Probably the code should be ABC[0]
|
|
}
|
|
|
|
void normalSyntax(int *X) {
|
|
X[10] = 0;
|
|
}
|