blob: 1f172a47dd8d77de29db2d789a361fd179c0ca5e [file] [log] [blame]
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +00001// RUN: %python %S/check_clang_tidy.py %s modernize-loop-convert %t \
2// RUN: -config="{CheckOptions: [{key: modernize-loop-convert.NamingStyle, value: 'UPPER_CASE'}]}" \
3// RUN: -- -std=c++11 -I %S/Inputs/modernize-loop-convert
4
5#include "structures.h"
6
7const int N = 10;
8int ARR[N];
9int NUMS[N];
Angel Garcia Gomez88d20442015-10-02 13:20:11 +000010int NUMS_[N];
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000011
12void naming() {
13 for (int I = 0; I < N; ++I) {
14 printf("%d\n", ARR[I]);
15 }
16 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead [modernize-loop-convert]
17 // CHECK-FIXES: for (auto & ELEM : ARR)
18 // CHECK-FIXES-NEXT: printf("%d\n", ELEM);
19
20 for (int I = 0; I < N; ++I) {
21 printf("%d\n", NUMS[I]);
22 }
23 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
24 // CHECK-FIXES: for (auto & NUM : NUMS)
25 // CHECK-FIXES-NEXT: printf("%d\n", NUM);
26
Angel Garcia Gomez88d20442015-10-02 13:20:11 +000027 for (int I = 0; I < N; ++I) {
28 printf("%d\n", NUMS_[I]);
29 }
30 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
31 // CHECK-FIXES: for (auto & NUM : NUMS_)
32 // CHECK-FIXES-NEXT: printf("%d\n", NUM);
33
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000034 int NUM = 0;
35 for (int I = 0; I < N; ++I) {
36 printf("%d\n", NUMS[I] + NUM);
37 }
38 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
39 // CHECK-FIXES: for (auto & ELEM : NUMS)
40 // CHECK-FIXES-NEXT: printf("%d\n", ELEM + NUM);
41
42 int ELEM = 0;
43 for (int I = 0; I < N; ++I) {
44 printf("%d\n", NUMS[I] + NUM + ELEM);
45 }
46 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
47 // CHECK-FIXES: for (auto & NUMS_I : NUMS)
48 // CHECK-FIXES-NEXT: printf("%d\n", NUMS_I + NUM + ELEM);
49
50 int NUMS_I = 0;
51 for (int I = 0; I < N; ++I) {
52 printf("%d\n", NUMS[I] + NUM + ELEM + NUMS_I);
53 }
54 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
55 // CHECK-FIXES: for (auto & NUMS_ELEM : NUMS)
56 // CHECK-FIXES-NEXT: printf("%d\n", NUMS_ELEM + NUM + ELEM + NUMS_I);
57
58 int NUMS_ELEM = 0;
59 for (int I = 0; I < N; ++I) {
60 printf("%d\n", NUMS[I] + NUM + ELEM + NUMS_I + NUMS_ELEM);
61 }
62 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
63 // CHECK-FIXES: for (auto & GIVE_ME_NAME_0 : NUMS)
64 // CHECK-FIXES-NEXT: printf("%d\n", GIVE_ME_NAME_0 + NUM + ELEM + NUMS_I + NUMS_ELEM);
65
66 int GIVE_ME_NAME_0 = 0;
67 for (int I = 0; I < N; ++I) {
68 printf("%d\n", NUMS[I] + NUM + ELEM + NUMS_I + NUMS_ELEM + GIVE_ME_NAME_0);
69 }
70 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
71 // CHECK-FIXES: for (auto & GIVE_ME_NAME_1 : NUMS)
72 // CHECK-FIXES-NEXT: printf("%d\n", GIVE_ME_NAME_1 + NUM + ELEM + NUMS_I + NUMS_ELEM + GIVE_ME_NAME_0);
73
74 int NUMS_J = 0;
75 for (int I = 0; I < N; ++I) {
76 for (int J = 0; J < N; ++J) {
77 printf("%d\n", NUMS[I] + NUMS[J] + NUM + ELEM + NUMS_I + NUMS_J + NUMS_ELEM);
78 }
79 }
80 // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
81 // CHECK-MESSAGES: :[[@LINE-5]]:5: warning: use range-based for loop instead
82 // CHECK-FIXES: for (auto & GIVE_ME_NAME_0 : NUMS)
83 // CHECK-FIXES: for (auto & GIVE_ME_NAME_1 : NUMS)
84 // CHECK-FIXES-NEXT: printf("%d\n", GIVE_ME_NAME_0 + GIVE_ME_NAME_1 + NUM + ELEM + NUMS_I + NUMS_J + NUMS_ELEM);
85}