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