// 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; }