aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/test/clang-tidy/checkers/modernize
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/checkers/modernize')
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-bind.cpp18
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp20
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-basic.cpp158
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-const.cpp78
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-extra.cpp189
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp6
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/min-max-use-initializer-list.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp10
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast-remove-stars.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-for-pointer.cpp16
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-iterator.cpp8
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-min-type-name-length.cpp16
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-copy.cpp6
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp4
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison-qt.cpp5
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison.cpp5
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.cpp12
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-override.cpp8
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp30
-rw-r--r--clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp16
24 files changed, 318 insertions, 311 deletions
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-bind.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-bind.cpp
index 342c96a..6aa7d48 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-bind.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-bind.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++14-or-later %s modernize-avoid-bind %t
+// RUN: %check_clang_tidy -std=c++14-or-later %s modernize-avoid-bind %t
namespace std {
inline namespace impl {
@@ -229,19 +229,19 @@ void testFunctionObjects() {
D *e = nullptr;
auto AAA = std::bind(d, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:14: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto AAA = [d] { d(1, 2); }
+ // CHECK-FIXES: auto AAA = [d] { d(1, 2); };
auto BBB = std::bind(*e, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:14: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto BBB = [e] { (*e)(1, 2); }
+ // CHECK-FIXES: auto BBB = [e] { (*e)(1, 2); };
auto CCC = std::bind(D{}, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:14: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto CCC = [] { D{}(1, 2); }
+ // CHECK-FIXES: auto CCC = [] { D{}(1, 2); };
auto DDD = std::bind(D(), 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:14: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto DDD = [] { D()(1, 2); }
+ // CHECK-FIXES: auto DDD = [] { D()(1, 2); };
auto EEE = std::bind(*D::create(), 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:14: warning: prefer a lambda to std::bind
@@ -384,11 +384,11 @@ struct E {
auto III = std::bind(&D::operator(), d, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto III = [d] { (*d)(1, 2); }
+ // CHECK-FIXES: auto III = [d] { (*d)(1, 2); };
auto JJJ = std::bind(&D::operator(), &dd, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto JJJ = [ObjectPtr = &dd] { (*ObjectPtr)(1, 2); }
+ // CHECK-FIXES: auto JJJ = [ObjectPtr = &dd] { (*ObjectPtr)(1, 2); };
auto KKK = std::bind(&D::operator(), _1, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer a lambda to std::bind
@@ -396,11 +396,11 @@ struct E {
auto LLL = std::bind(&D::operator bool, d);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto LLL = [d] { return d->operator bool(); }
+ // CHECK-FIXES: auto LLL = [d] { return d->operator bool(); };
auto MMM = std::bind(&E::operator(), this, 1, 2);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer a lambda to std::bind
- // CHECK-FIXES: auto MMM = [this] { return (*this)(1, 2); }
+ // CHECK-FIXES: auto MMM = [this] { return (*this)(1, 2); };
}
};
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp
index 78adbeb..35cb550 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp
@@ -1,10 +1,10 @@
// RUN: mkdir -p %t.dir
// RUN: cp %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h %t.dir/modernize-concat-nested-namespaces.h
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++17 -check-suffix=NORMAL %s modernize-concat-nested-namespaces %t.dir/code -- -header-filter=".*" -- -I %t.dir
+// RUN: %check_clang_tidy -std=c++17 -check-suffix=NORMAL %s modernize-concat-nested-namespaces %t.dir/code -- -header-filter=".*" -- -I %t.dir
// RUN: FileCheck -input-file=%t.dir/modernize-concat-nested-namespaces.h %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h -check-prefix=CHECK-FIXES
// Restore header file and re-run with c++20:
// RUN: cp %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h %t.dir/modernize-concat-nested-namespaces.h
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++20 -check-suffixes=NORMAL,CPP20 %s modernize-concat-nested-namespaces %t.dir/code -- -header-filter=".*" -- -I %t.dir
+// RUN: %check_clang_tidy -std=c++20 -check-suffixes=NORMAL,CPP20 %s modernize-concat-nested-namespaces %t.dir/code -- -header-filter=".*" -- -I %t.dir
// RUN: FileCheck -input-file=%t.dir/modernize-concat-nested-namespaces.h %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h -check-prefix=CHECK-FIXES
#include "modernize-concat-nested-namespaces.h"
@@ -38,16 +38,16 @@ void t();
namespace n9 {
namespace n10 {
// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
-// CHECK-FIXES-NORMAL: namespace n9::n10
+// CHECK-FIXES-NORMAL: namespace n9::n10 {
void t();
} // namespace n10
} // namespace n9
-// CHECK-FIXES-NORMAL: }
+// CHECK-FIXES-NORMAL: } // namespace n9::n10
namespace n11 {
namespace n12 {
// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
-// CHECK-FIXES-NORMAL: namespace n11::n12
+// CHECK-FIXES-NORMAL: namespace n11::n12 {
namespace n13 {
void t();
}
@@ -71,7 +71,7 @@ namespace n18 {
namespace n19 {
namespace n20 {
// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-3]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
-// CHECK-FIXES-NORMAL: namespace n18::n19::n20
+// CHECK-FIXES-NORMAL: namespace n18::n19::n20 {
void t();
} // namespace n20
} // namespace n19
@@ -94,11 +94,11 @@ namespace {
namespace n24 {
namespace n25 {
// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
-// CHECK-FIXES-NORMAL: namespace n24::n25
+// CHECK-FIXES-NORMAL: namespace n24::n25 {
void t();
} // namespace n25
} // namespace n24
-// CHECK-FIXES-NORMAL: }
+// CHECK-FIXES-NORMAL: } // namespace n24::n25
} // namespace
} // namespace n23
@@ -136,7 +136,7 @@ void t();
namespace n39 {
namespace n40 {
// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
-// CHECK-FIXES-NORMAL: namespace n39::n40
+// CHECK-FIXES-NORMAL: namespace n39::n40 {
#ifdef IEXIST
void t() {}
#endif
@@ -147,7 +147,7 @@ void t() {}
namespace n41 {
namespace n42 {
// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
-// CHECK-FIXES-NORMAL: namespace n41::n42
+// CHECK-FIXES-NORMAL: namespace n41::n42 {
#ifdef IDONTEXIST
void t() {}
#endif
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-basic.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-basic.cpp
index 419e7f8..2f744eb 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-basic.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-basic.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-loop-convert %t -- -- -I %S/Inputs/loop-convert
+// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -I %S/Inputs/loop-convert
#include "structures.h"
@@ -18,7 +18,7 @@ void f() {
int K;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead [modernize-loop-convert]
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: Sum += I;
// CHECK-FIXES-NEXT: int K;
@@ -27,7 +27,7 @@ void f() {
Sum += Arr[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -36,7 +36,7 @@ void f() {
int Y = Arr[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: int X = I;
// CHECK-FIXES-NEXT: int Y = I + 2;
@@ -45,7 +45,7 @@ void f() {
X = Arr[I];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: int X = N;
// CHECK-FIXES-NEXT: X = I;
@@ -53,7 +53,7 @@ void f() {
Arr[I] += 1;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: I += 1;
for (int I = 0; I < N; ++I) {
@@ -61,7 +61,7 @@ void f() {
Arr[I]++;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: int X = I + 2;
// CHECK-FIXES-NEXT: I++;
@@ -69,14 +69,14 @@ void f() {
Arr[I] = 4 + Arr[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: I = 4 + I;
for (int I = 0; I < NMinusOne + 1; ++I) {
Sum += Arr[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: Sum += I;
for (int I = 0; I < N; ++I) {
@@ -84,7 +84,7 @@ void f() {
Sum += Arr[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: printf("Fibonacci number %d has address %p\n", I, &I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -96,7 +96,7 @@ void f() {
size += sizeof((Matrix[I]));
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Matrix)
+ // CHECK-FIXES: for (auto & I : Matrix) {
// CHECK-FIXES-NEXT: size += sizeof(I);
// CHECK-FIXES-NEXT: size += sizeof I;
// CHECK-FIXES-NEXT: size += sizeof(I);
@@ -106,7 +106,7 @@ void f() {
Teas[I].g();
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Tea : Teas)
+ // CHECK-FIXES: for (auto & Tea : Teas) {
// CHECK-FIXES-NEXT: Tea.g();
for (int I = 0; N > I; ++I) {
@@ -114,7 +114,7 @@ void f() {
Sum += Arr[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: printf("Fibonacci number %d has address %p\n", I, &I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -123,7 +123,7 @@ void f() {
Sum += Arr[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: printf("Fibonacci number %d has address %p\n", I, &I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -132,7 +132,7 @@ void f() {
Sum += Arr[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: printf("Fibonacci number %d has address %p\n", I, &I);
// CHECK-FIXES-NEXT: Sum += I + 2;
}
@@ -142,7 +142,7 @@ const int *constArray() {
printf("2 * %d = %d\n", ConstArr[I], ConstArr[I] + ConstArr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : ConstArr)
+ // CHECK-FIXES: for (int I : ConstArr) {
// CHECK-FIXES-NEXT: printf("2 * %d = %d\n", I, I + I);
const NonTriviallyCopyable NonCopy[N]{};
@@ -150,7 +150,7 @@ const int *constArray() {
printf("2 * %d = %d\n", NonCopy[I].X, NonCopy[I].X + NonCopy[I].X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const auto & I : NonCopy)
+ // CHECK-FIXES: for (const auto & I : NonCopy) {
// CHECK-FIXES-NEXT: printf("2 * %d = %d\n", I.X, I.X + I.X);
const TriviallyCopyableButBig Big[N]{};
@@ -158,7 +158,7 @@ const int *constArray() {
printf("2 * %d = %d\n", Big[I].X, Big[I].X + Big[I].X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const auto & I : Big)
+ // CHECK-FIXES: for (const auto & I : Big) {
// CHECK-FIXES-NEXT: printf("2 * %d = %d\n", I.X, I.X + I.X);
bool Something = false;
@@ -167,7 +167,7 @@ const int *constArray() {
return &ConstArr[I];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const int & I : ConstArr)
+ // CHECK-FIXES: for (const int & I : ConstArr) {
// CHECK-FIXES-NEXT: if (Something)
// CHECK-FIXES-NEXT: return &I;
@@ -182,14 +182,14 @@ struct HasArr {
printf("%d", Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: printf("%d", I);
for (int I = 0; I < N; ++I) {
printf("%d", ValArr[I].X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : ValArr)
+ // CHECK-FIXES: for (auto & I : ValArr) {
// CHECK-FIXES-NEXT: printf("%d", I.X);
}
@@ -198,14 +198,14 @@ struct HasArr {
printf("%d", this->Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : this->Arr)
+ // CHECK-FIXES: for (int I : this->Arr) {
// CHECK-FIXES-NEXT: printf("%d", I);
for (int I = 0; I < N; ++I) {
printf("%d", this->ValArr[I].X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : this->ValArr)
+ // CHECK-FIXES: for (auto & I : this->ValArr) {
// CHECK-FIXES-NEXT: printf("%d", I.X);
}
};
@@ -217,14 +217,14 @@ struct HasIndirectArr {
printf("%d", HA.Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : HA.Arr)
+ // CHECK-FIXES: for (int I : HA.Arr) {
// CHECK-FIXES-NEXT: printf("%d", I);
for (int I = 0; I < N; ++I) {
printf("%d", HA.ValArr[I].X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : HA.ValArr)
+ // CHECK-FIXES: for (auto & I : HA.ValArr) {
// CHECK-FIXES-NEXT: printf("%d", I.X);
}
@@ -233,14 +233,14 @@ struct HasIndirectArr {
printf("%d", this->HA.Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : this->HA.Arr)
+ // CHECK-FIXES: for (int I : this->HA.Arr) {
// CHECK-FIXES-NEXT: printf("%d", I);
for (int I = 0; I < N; ++I) {
printf("%d", this->HA.ValArr[I].X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : this->HA.ValArr)
+ // CHECK-FIXES: for (auto & I : this->HA.ValArr) {
// CHECK-FIXES-NEXT: printf("%d", I.X);
}
};
@@ -285,7 +285,7 @@ void f() {
printf("I found %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : Tt)
+ // CHECK-FIXES: for (int & It : Tt) {
// CHECK-FIXES-NEXT: printf("I found %d\n", It);
// Do not crash because of Qq.begin() converting. Q::iterator converts with a
@@ -295,7 +295,7 @@ void f() {
printf("I found %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : Qq)
+ // CHECK-FIXES: for (int & It : Qq) {
// CHECK-FIXES-NEXT: printf("I found %d\n", It);
T *Pt;
@@ -303,7 +303,7 @@ void f() {
printf("I found %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : *Pt)
+ // CHECK-FIXES: for (int & It : *Pt) {
// CHECK-FIXES-NEXT: printf("I found %d\n", It);
S Ss;
@@ -311,7 +311,7 @@ void f() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
S *Ps;
@@ -319,42 +319,42 @@ void f() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & P : *Ps)
+ // CHECK-FIXES: for (auto & P : *Ps) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", P.X);
for (S::const_iterator It = Ss.cbegin(), E = Ss.cend(); It != E; ++It) {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto It : Ss)
+ // CHECK-FIXES: for (auto It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
for (S::iterator It = Ss.begin(), E = Ss.end(); It != E; ++It) {
printf("s has value %d\n", It->X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
for (S::iterator It = Ss.begin(), E = Ss.end(); It != E; ++It) {
It->X = 3;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: It.X = 3;
for (S::iterator It = Ss.begin(), E = Ss.end(); It != E; ++It) {
(*It).X = 3;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: It.X = 3;
for (S::iterator It = Ss.begin(), E = Ss.end(); It != E; ++It) {
It->nonConstFun(4, 5);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: It.nonConstFun(4, 5);
U Uu;
@@ -362,14 +362,14 @@ void f() {
printf("s has value %d\n", It->X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Uu)
+ // CHECK-FIXES: for (auto & It : Uu) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
for (U::iterator It = Uu.begin(), E = Uu.end(); It != E; ++It) {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Uu)
+ // CHECK-FIXES: for (auto & It : Uu) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
for (U::iterator It = Uu.begin(), E = Uu.end(); It != E; ++It) {
@@ -389,7 +389,7 @@ void f() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : V)
+ // CHECK-FIXES: for (int & It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
for (dependent<int>::iterator It(V.begin()), E = V.end();
@@ -397,7 +397,7 @@ void f() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : V)
+ // CHECK-FIXES: for (int & It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
doublyDependent<int, int> Intmap;
@@ -406,7 +406,7 @@ void f() {
printf("Intmap[%d] = %d", It->first, It->second);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Intmap)
+ // CHECK-FIXES: for (auto & It : Intmap) {
// CHECK-FIXES: printf("Intmap[%d] = %d", It.first, It.second);
// PtrSet's iterator dereferences by value so auto & can't be used.
@@ -418,7 +418,7 @@ void f() {
(void) *I;
}
// CHECK-MESSAGES: :[[@LINE-5]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto Val_int_ptr : Val_int_ptrs)
+ // CHECK-FIXES: for (auto Val_int_ptr : Val_int_ptrs) {
}
// This container uses an iterator where the dereference type is a typedef of
@@ -432,7 +432,7 @@ void f() {
(void) *I;
}
// CHECK-MESSAGES: :[[@LINE-5]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & Int_ptr : Int_ptrs)
+ // CHECK-FIXES: for (int & Int_ptr : Int_ptrs) {
}
{
@@ -451,49 +451,49 @@ void f() {
printf("%d\n", (**I).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Dpp)
+ // CHECK-FIXES: for (auto & I : Dpp) {
// CHECK-FIXES-NEXT: printf("%d\n", (*I).X);
for (dependent<Val *>::iterator I = Dpp.begin(), E = Dpp.end(); I != E; ++I) {
printf("%d\n", (*I)->X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Dpp)
+ // CHECK-FIXES: for (auto & I : Dpp) {
// CHECK-FIXES-NEXT: printf("%d\n", I->X);
for (S::iterator It = begin(Ss), E = end(Ss); It != E; ++It) {
printf("s0 has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: printf("s0 has value %d\n", It.X);
for (S::iterator It = std::begin(Ss), E = std::end(Ss); It != E; ++It) {
printf("s1 has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: printf("s1 has value %d\n", It.X);
for (S::iterator It = begin(*Ps), E = end(*Ps); It != E; ++It) {
printf("s2 has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : *Ps)
+ // CHECK-FIXES: for (auto & It : *Ps) {
// CHECK-FIXES-NEXT: printf("s2 has value %d\n", It.X);
for (S::iterator It = begin(*Ps); It != end(*Ps); ++It) {
printf("s3 has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : *Ps)
+ // CHECK-FIXES: for (auto & It : *Ps) {
// CHECK-FIXES-NEXT: printf("s3 has value %d\n", It.X);
for (S::const_iterator It = cbegin(Ss), E = cend(Ss); It != E; ++It) {
printf("s4 has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto It : Ss)
+ // CHECK-FIXES: for (auto It : Ss) {
// CHECK-FIXES-NEXT: printf("s4 has value %d\n", It.X);
}
@@ -507,7 +507,7 @@ void different_type() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto It : Ss)
+ // CHECK-FIXES: for (auto It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
S *Ps;
@@ -515,7 +515,7 @@ void different_type() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto P : *Ps)
+ // CHECK-FIXES: for (auto P : *Ps) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", P.X);
dependent<int> V;
@@ -524,7 +524,7 @@ void different_type() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int It : V)
+ // CHECK-FIXES: for (int It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
for (dependent<int>::const_iterator It(V.begin()), E = V.end();
@@ -532,7 +532,7 @@ void different_type() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int It : V)
+ // CHECK-FIXES: for (int It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
}
@@ -634,7 +634,7 @@ void f() {
Sum += V[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -643,7 +643,7 @@ void f() {
Sum += V.at(I) + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -652,7 +652,7 @@ void f() {
Sum += Pv->at(I) + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : *Pv)
+ // CHECK-FIXES: for (int I : *Pv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -665,7 +665,7 @@ void f() {
Sum += (*Pv)[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : *Pv)
+ // CHECK-FIXES: for (int I : *Pv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -674,7 +674,7 @@ void f() {
Sum += Cv->at(I) + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : *Cv)
+ // CHECK-FIXES: for (int I : *Cv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -683,7 +683,7 @@ void f() {
Sum += V[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -692,7 +692,7 @@ void f() {
Sum += V[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -701,7 +701,7 @@ void f() {
Sum += V[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -710,7 +710,7 @@ void f() {
Sum += VD[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : VD)
+ // CHECK-FIXES: for (int I : VD) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -719,7 +719,7 @@ void f() {
Sum += V[I] + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2;
@@ -727,14 +727,14 @@ void f() {
V[I] = 0;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : V)
+ // CHECK-FIXES: for (int & I : V) {
// CHECK-FIXES-NEXT: I = 0;
for (int I = 0, E = std::size(V); E != I; ++I) {
V[I] = 0;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : V)
+ // CHECK-FIXES: for (int & I : V) {
// CHECK-FIXES-NEXT: I = 0;
// Although 'length' might be a valid free function, only size() is standardized
@@ -748,7 +748,7 @@ void f() {
Sum += Vals[I].X;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Val : Vals)
+ // CHECK-FIXES: for (auto & Val : Vals) {
// CHECK-FIXES-NEXT: Sum += Val.X;
}
@@ -760,7 +760,7 @@ void constness() {
Sum += Constv[I].X + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const auto & I : Constv)
+ // CHECK-FIXES: for (const auto & I : Constv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I.X);
// CHECK-FIXES-NEXT: Sum += I.X + 2;
@@ -769,7 +769,7 @@ void constness() {
Sum += Constv.at(I).X + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const auto & I : Constv)
+ // CHECK-FIXES: for (const auto & I : Constv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I.X);
// CHECK-FIXES-NEXT: Sum += I.X + 2;
@@ -778,7 +778,7 @@ void constness() {
Sum += Pconstv->at(I).X + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const auto & I : *Pconstv)
+ // CHECK-FIXES: for (const auto & I : *Pconstv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I.X);
// CHECK-FIXES-NEXT: Sum += I.X + 2;
@@ -791,7 +791,7 @@ void constness() {
Sum += (*Pconstv)[I].X + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (const auto & I : *Pconstv)
+ // CHECK-FIXES: for (const auto & I : *Pconstv) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I.X);
// CHECK-FIXES-NEXT: Sum += I.X + 2;
}
@@ -804,14 +804,14 @@ void constRef(const dependent<int>& ConstVRef) {
sum += ConstVRef[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : ConstVRef)
+ // CHECK-FIXES: for (int I : ConstVRef) {
// CHECK-FIXES-NEXT: sum += I;
for (auto I = ConstVRef.begin(), E = ConstVRef.end(); I != E; ++I) {
sum += *I;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : ConstVRef)
+ // CHECK-FIXES: for (int I : ConstVRef) {
// CHECK-FIXES-NEXT: sum += I;
}
@@ -889,7 +889,7 @@ void derefByValueTest() {
printf("%d\n", DBV[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (unsigned int I : DBV)
+ // CHECK-FIXES: for (unsigned int I : DBV) {
// CHECK-FIXES-NEXT: printf("%d\n", I);
for (unsigned I = 0, E = DBV.size(); I < E; ++I) {
@@ -897,7 +897,7 @@ void derefByValueTest() {
printf("%d\n", DBV[I]);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (unsigned int I : DBV)
+ // CHECK-FIXES: for (unsigned int I : DBV) {
// CHECK-FIXES-NEXT: auto f = [DBV, &I]() {};
// CHECK-FIXES-NEXT: printf("%d\n", I);
}
@@ -960,7 +960,7 @@ template <unsigned p> void _dependenceArrayTest() {
for (unsigned j = 0; j < 3; ++j)
printf("%d", test[j][i]);
// CHECK-MESSAGES: :[[@LINE-2]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: (auto & j : test)
+ // CHECK-FIXES: for (auto & j : test)
// CHECK-FIXES: printf("%d", j[i]);
}
void dependenceArrayTest() {
@@ -992,13 +992,13 @@ void test() {
auto V = [T = Arr[I]]() {};
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead [modernize-loop-convert]
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: auto V = [T = I]() {};
for (int I = 0; I < N; ++I) {
auto V = [T = 10 + Arr[I]]() {};
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead [modernize-loop-convert]
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: auto V = [T = 10 + I]() {};
for (int I = 0; I < N; ++I) {
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-const.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-const.cpp
index 6091f0a..59f472c 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-const.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-const.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-loop-convert %t
+// RUN: %check_clang_tidy %s modernize-loop-convert %t
struct Str {
Str() = default;
@@ -43,7 +43,7 @@ void memberFunctionsAndOperators() {
Array[I].constMember(0);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead [modernize-loop-convert]
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
// CHECK-FIXES-NEXT: I.constMember(0);
for (int I = 0; I < N; ++I) {
@@ -51,14 +51,14 @@ void memberFunctionsAndOperators() {
foo();
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
// CHECK-FIXES-NEXT: if (I < OtherStr)
for (int I = 0; I < N; ++I) {
if (Right[I] < OtherRight)
foo();
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (const auto & I : Right)
+ // CHECK-FIXES: for (const auto & I : Right) {
// CHECK-FIXES-NEXT: if (I < OtherRight)
// Calling non-const member functions is not.
@@ -66,21 +66,21 @@ void memberFunctionsAndOperators() {
Array[I].nonConstMember(0);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Array)
+ // CHECK-FIXES: for (auto & I : Array) {
// CHECK-FIXES-NEXT: I.nonConstMember(0);
for (int I = 0; I < N; ++I) {
Array[I] = OtherStr;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Array)
+ // CHECK-FIXES: for (auto & I : Array) {
// CHECK-FIXES-NEXT: I = OtherStr;
for (int I = 0; I < N; ++I) {
Right[I] = OtherRight;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Right)
+ // CHECK-FIXES: for (auto & I : Right) {
// CHECK-FIXES-NEXT: I = OtherRight;
}
@@ -90,14 +90,14 @@ void usedAsParameterToFunctionOrOperator() {
copyArg(Array[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
// CHECK-FIXES-NEXT: copyArg(I);
for (int I = 0; I < N; ++I) {
copyArg(Right[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Right)
+ // CHECK-FIXES: for (auto & I : Right) {
// CHECK-FIXES-NEXT: copyArg(I);
// Using as a const reference argument is allowed.
@@ -105,7 +105,7 @@ void usedAsParameterToFunctionOrOperator() {
constRefArg(Array[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
// CHECK-FIXES-NEXT: constRefArg(I);
for (int I = 0; I < N; ++I) {
@@ -113,14 +113,14 @@ void usedAsParameterToFunctionOrOperator() {
foo();
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
// CHECK-FIXES-NEXT: if (OtherStr < I)
for (int I = 0; I < N; ++I) {
constRefArg(Right[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (const auto & I : Right)
+ // CHECK-FIXES: for (const auto & I : Right) {
// CHECK-FIXES-NEXT: constRefArg(I);
// Using as a non-const reference is not.
@@ -128,20 +128,20 @@ void usedAsParameterToFunctionOrOperator() {
nonConstRefArg(Array[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Array)
+ // CHECK-FIXES: for (auto & I : Array) {
// CHECK-FIXES-NEXT: nonConstRefArg(I);
for (int I = 0; I < N; ++I) {
nonConstRefArg(Right[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Right)
+ // CHECK-FIXES: for (auto & I : Right) {
// CHECK-FIXES-NEXT: nonConstRefArg(I);
for (int I = 0; I < N; ++I) {
if (OtherRight < Right[I])
foo();
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Right)
+ // CHECK-FIXES: for (auto & I : Right) {
// CHECK-FIXES-NEXT: if (OtherRight < I)
}
@@ -151,19 +151,19 @@ void primitiveTypes() {
copyArg(Ints[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: copyArg(Int);
for (int I = 0; I < N; ++I) {
constRefArg(Ints[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: constRefArg(Int);
for (int I = 0; I < N; ++I) {
nonConstRefArg(Ints[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int & Int : Ints)
+ // CHECK-FIXES: for (int & Int : Ints) {
// CHECK-FIXES-NEXT: nonConstRefArg(Int);
// Builtin operators.
@@ -173,7 +173,7 @@ void primitiveTypes() {
foo();
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: if (Int < N)
for (int I = 0; I < N; ++I) {
@@ -181,7 +181,7 @@ void primitiveTypes() {
foo();
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: if (N == Int)
// Assignment.
@@ -189,21 +189,21 @@ void primitiveTypes() {
Ints[I] = OtherInt;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int & Int : Ints)
+ // CHECK-FIXES: for (int & Int : Ints) {
// CHECK-FIXES-NEXT: Int = OtherInt;
for (int I = 0; I < N; ++I) {
OtherInt = Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: OtherInt = Int;
for (int I = 0; I < N; ++I) {
OtherInt = Ints[I] = OtherInt;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int & Int : Ints)
+ // CHECK-FIXES: for (int & Int : Ints) {
// CHECK-FIXES-NEXT: OtherInt = Int = OtherInt;
// Arithmetic operations.
@@ -211,21 +211,21 @@ void primitiveTypes() {
OtherInt += Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: OtherInt += Int;
for (int I = 0; I < N; ++I) {
Ints[I] += Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int & Int : Ints)
+ // CHECK-FIXES: for (int & Int : Ints) {
// CHECK-FIXES-NEXT: Int += Int;
for (int I = 0; I < N; ++I) {
int Res = 5 * (Ints[I] + 1) - Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: int Res = 5 * (Int + 1) - Int;
}
@@ -238,7 +238,7 @@ void takingReferences() {
Str &K = Array[I];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & I : Array)
+ // CHECK-FIXES: for (auto & I : Array) {
// CHECK-FIXES-NEXT: Str &J = I;
// CHECK-FIXES-NEXT: Str &K = I;
for (int I = 0; I < N; ++I) {
@@ -246,7 +246,7 @@ void takingReferences() {
const Str &K = Array[I];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
// CHECK-FIXES-NEXT: const Str &J = I;
// CHECK-FIXES-NEXT: const Str &K = I;
@@ -256,7 +256,7 @@ void takingReferences() {
int &K = Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int & Int : Ints)
+ // CHECK-FIXES: for (int & Int : Ints) {
// CHECK-FIXES-NEXT: int &J = Int;
// CHECK-FIXES-NEXT: int &K = Int;
for (int I = 0; I < N; ++I) {
@@ -264,7 +264,7 @@ void takingReferences() {
const int &K = Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: const int &J = Int;
// CHECK-FIXES-NEXT: const int &K = Int;
@@ -274,27 +274,27 @@ void takingReferences() {
(void)J;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto J : Array)
+ // CHECK-FIXES: for (auto J : Array) {
for (int I = 0; I < N; ++I) {
Str &J = Array[I];
(void)J;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto & J : Array)
+ // CHECK-FIXES: for (auto & J : Array) {
for (int I = 0; I < N; ++I) {
const int &J = Ints[I];
(void)J;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int J : Ints)
+ // CHECK-FIXES: for (int J : Ints) {
for (int I = 0; I < N; ++I) {
int &J = Ints[I];
(void)J;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int & J : Ints)
+ // CHECK-FIXES: for (int & J : Ints) {
}
template <class T>
@@ -315,7 +315,7 @@ void testContainerOfConstIents() {
OtherInt -= Ints[I];
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
vector<const Str> Strs;
for (int I = 0; I < Strs.size(); ++I) {
@@ -323,7 +323,7 @@ void testContainerOfConstIents() {
constRefArg(Strs[I]);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop
- // CHECK-FIXES: for (auto Str : Strs)
+ // CHECK-FIXES: for (auto Str : Strs) {
}
// When we are inside a const-qualified member functions, all the data members
@@ -341,20 +341,20 @@ class TestInsideConstFunction {
copyArg(Ints[I]);
}
// CHECK-MESSAGES: :[[@LINE-4]]:5: warning: use range-based for loop
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
for (int I = 0; I < N; ++I) {
Array[I].constMember(0);
constRefArg(Array[I]);
}
// CHECK-MESSAGES: :[[@LINE-4]]:5: warning: use range-based for loop
- // CHECK-FIXES: for (auto I : Array)
+ // CHECK-FIXES: for (auto I : Array) {
for (int I = 0; I < V.size(); ++I) {
if (V[I])
copyArg(V[I]);
}
// CHECK-MESSAGES: :[[@LINE-4]]:5: warning: use range-based for loop
- // CHECK-FIXES: for (int I : V)
+ // CHECK-FIXES: for (int I : V) {
}
};
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-extra.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-extra.cpp
index 1ac555f..161427c 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-extra.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-extra.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-loop-convert %t -- -- -I %S/Inputs/loop-convert
+// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -I %S/Inputs/loop-convert
#include "structures.h"
@@ -14,7 +14,7 @@ void f() {
int B = Arr[I][A];
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Arr)
+ // CHECK-FIXES: for (auto & I : Arr) {
// CHECK-FIXES-NEXT: int A = 0;
// CHECK-FIXES-NEXT: int B = I[A];
@@ -51,7 +51,7 @@ void aliasing() {
int Y = T.X;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & T : Arr)
+ // CHECK-FIXES: for (auto & T : Arr) {
// CHECK-FIXES-NOT: Val &{{[a-z_]+}} =
// CHECK-FIXES-NEXT: {}
// CHECK-FIXES-NEXT: int Y = T.X;
@@ -64,7 +64,7 @@ void aliasing() {
int Z = Arr[I].X + T.X;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Arr)
+ // CHECK-FIXES: for (auto & I : Arr) {
// CHECK-FIXES-NEXT: Val &T = I;
// CHECK-FIXES-NEXT: int Y = T.X;
// CHECK-FIXES-NEXT: int Z = I.X + T.X;
@@ -75,7 +75,7 @@ void aliasing() {
int Z = Arr[I].X + T.X;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Arr)
+ // CHECK-FIXES: for (auto & I : Arr) {
// CHECK-FIXES-NEXT: Val T = I;
// CHECK-FIXES-NEXT: int Y = T.X;
// CHECK-FIXES-NEXT: int Z = I.X + T.X;
@@ -88,7 +88,7 @@ void aliasing() {
int Y = T.X;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & T : V)
+ // CHECK-FIXES: for (auto & T : V) {
// CHECK-FIXES-NEXT: {}
// CHECK-FIXES-NEXT: int Y = T.X;
@@ -99,7 +99,7 @@ void aliasing() {
int Y = T.X;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & T : *Pv)
+ // CHECK-FIXES: for (auto & T : *Pv) {
// CHECK-FIXES-NEXT: {}
// CHECK-FIXES-NEXT: int Y = T.X;
@@ -108,7 +108,7 @@ void aliasing() {
int Y = T.X;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Arr)
+ // CHECK-FIXES: for (auto & I : Arr) {
// CHECK-FIXES-NEXT: Val &T = func(I);
// CHECK-FIXES-NEXT: int Y = T.X;
@@ -119,8 +119,8 @@ void aliasing() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Alias : IntArr)
- // CHECK-FIXES-NEXT: if (Alias)
+ // CHECK-FIXES: for (int Alias : IntArr) {
+ // CHECK-FIXES-NEXT: if (Alias) {
for (unsigned I = 0; I < N; ++I) {
while (int Alias = IntArr[I]) {
@@ -128,8 +128,8 @@ void aliasing() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Alias : IntArr)
- // CHECK-FIXES-NEXT: while (Alias)
+ // CHECK-FIXES: for (int Alias : IntArr) {
+ // CHECK-FIXES-NEXT: while (Alias) {
for (unsigned I = 0; I < N; ++I) {
switch (int Alias = IntArr[I]) {
@@ -138,8 +138,8 @@ void aliasing() {
}
}
// CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Alias : IntArr)
- // CHECK-FIXES-NEXT: switch (Alias)
+ // CHECK-FIXES: for (int Alias : IntArr) {
+ // CHECK-FIXES-NEXT: switch (Alias) {
for (unsigned I = 0; I < N; ++I) {
for (int Alias = IntArr[I]; Alias < N; ++Alias) {
@@ -147,8 +147,8 @@ void aliasing() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Alias : IntArr)
- // CHECK-FIXES-NEXT: for (; Alias < N; ++Alias)
+ // CHECK-FIXES: for (int Alias : IntArr) {
+ // CHECK-FIXES-NEXT: for (; Alias < N; ++Alias) {
for (unsigned I = 0; I < N; ++I) {
for (unsigned J = 0; int Alias = IntArr[I]; ++J) {
@@ -156,15 +156,15 @@ void aliasing() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Alias : IntArr)
- // CHECK-FIXES-NEXT: for (unsigned J = 0; Alias; ++J)
+ // CHECK-FIXES: for (int Alias : IntArr) {
+ // CHECK-FIXES-NEXT: for (unsigned J = 0; Alias; ++J) {
struct IntRef { IntRef(); IntRef(const int& i); operator int*(); };
for (int I = 0; I < N; ++I) {
IntRef Int(IntArr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : IntArr)
+ // CHECK-FIXES: for (int I : IntArr) {
// CHECK-FIXES-NEXT: IntRef Int(I);
int *PtrArr[N];
@@ -173,7 +173,7 @@ void aliasing() {
printf("%d\n", *P);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto P : PtrArr)
+ // CHECK-FIXES: for (auto P : PtrArr) {
// CHECK-FIXES-NEXT: printf("%d\n", *P);
IntRef Refs[N];
@@ -182,7 +182,7 @@ void aliasing() {
printf("%d\n", *P);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Ref : Refs)
+ // CHECK-FIXES: for (auto & Ref : Refs) {
// CHECK-FIXES-NEXT: int *P = Ref;
// CHECK-FIXES-NEXT: printf("%d\n", *P);
@@ -212,7 +212,7 @@ void refs_and_vals() {
Alias.X = 0;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto Alias : S_const)
+ // CHECK-FIXES: for (auto Alias : S_const) {
// CHECK-FIXES-NOT: MutableVal {{[a-z_]+}} =
// CHECK-FIXES-NEXT: {}
// CHECK-FIXES-NEXT: Alias.X = 0;
@@ -223,7 +223,7 @@ void refs_and_vals() {
Alias.X = 0;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto Alias : Ss)
+ // CHECK-FIXES: for (auto Alias : Ss) {
// CHECK-FIXES-NOT: MutableVal {{[a-z_]+}} =
// CHECK-FIXES-NEXT: {}
// CHECK-FIXES-NEXT: Alias.X = 0;
@@ -234,7 +234,7 @@ void refs_and_vals() {
Alias.X = 0;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Alias : Ss)
+ // CHECK-FIXES: for (auto & Alias : Ss) {
// CHECK-FIXES-NOT: MutableVal &{{[a-z_]+}} =
// CHECK-FIXES-NEXT: {}
// CHECK-FIXES-NEXT: Alias.X = 0;
@@ -246,7 +246,7 @@ void refs_and_vals() {
unsigned Othersize = Other.size();
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : Dep)
+ // CHECK-FIXES: for (int & It : Dep) {
// CHECK-FIXES-NEXT: printf("%d\n", It);
// CHECK-FIXES-NEXT: const int& Idx = Other[0];
// CHECK-FIXES-NEXT: unsigned Othersize = Other.size();
@@ -255,7 +255,7 @@ void refs_and_vals() {
Other.at(i);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & i : Other)
+ // CHECK-FIXES: for (int & i : Other) {
// CHECK-FIXES: i;
for (int I = 0, E = Dep.size(); I != E; ++I) {
@@ -273,21 +273,21 @@ struct MemberNaming {
printf("%d\n", Ints[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: printf("%d\n", Int);
for (int I = 0; I < N; ++I) {
printf("%d\n", Ints_[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Int : Ints_)
+ // CHECK-FIXES: for (int Int : Ints_) {
// CHECK-FIXES-NEXT: printf("%d\n", Int);
for (int I = 0; I < DInts.size(); ++I) {
printf("%d\n", DInts[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (int DInt : DInts)
+ // CHECK-FIXES: for (int DInt : DInts) {
// CHECK-FIXES-NEXT: printf("%d\n", DInt);
}
@@ -298,14 +298,14 @@ void MemberNaming::outOfLine() {
printf("%d\n", Ints[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Int : Ints)
+ // CHECK-FIXES: for (int Int : Ints) {
// CHECK-FIXES-NEXT: printf("%d\n", Int);
for (int I = 0; I < N; ++I) {
printf("%d\n", Ints_[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Int : Ints_)
+ // CHECK-FIXES: for (int Int : Ints_) {
// CHECK-FIXES-NEXT: printf("%d\n", Int);
}
@@ -334,7 +334,7 @@ void sameNames() {
(void)Nums[I];
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Nums)
+ // CHECK-FIXES: for (int & I : Nums) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2 + Num;
// CHECK-FIXES-NEXT: (void)I;
@@ -346,7 +346,7 @@ void sameNames() {
(void)Nums[I];
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Nums)
+ // CHECK-FIXES: for (int & I : Nums) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I);
// CHECK-FIXES-NEXT: Sum += I + 2 + Num + Elem;
// CHECK-FIXES-NEXT: (void)I;
@@ -357,7 +357,7 @@ void oldIndexConflict() {
printf("Num: %d\n", Nums[Num]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int Num : Nums)
+ // CHECK-FIXES: for (int Num : Nums) {
// CHECK-FIXES-NEXT: printf("Num: %d\n", Num);
S Things;
@@ -365,7 +365,7 @@ void oldIndexConflict() {
printf("Thing: %d %d\n", Thing->X, (*Thing).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Thing : Things)
+ // CHECK-FIXES: for (auto & Thing : Things) {
// CHECK-FIXES-NEXT: printf("Thing: %d %d\n", Thing.X, Thing.X);
}
@@ -376,7 +376,7 @@ void macroConflict() {
printf("Max of 3 and 5: %d\n", MAX(3, 5));
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : MAXs)
+ // CHECK-FIXES: for (auto & It : MAXs) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
// CHECK-FIXES-NEXT: printf("Max of 3 and 5: %d\n", MAX(3, 5));
@@ -385,7 +385,7 @@ void macroConflict() {
printf("Max of 3 and 5: %d\n", MAX(3, 5));
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto It : MAXs)
+ // CHECK-FIXES: for (auto It : MAXs) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
// CHECK-FIXES-NEXT: printf("Max of 3 and 5: %d\n", MAX(3, 5));
@@ -396,8 +396,8 @@ void macroConflict() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : DEFs)
- // CHECK-FIXES-NEXT: if (It == DEF)
+ // CHECK-FIXES: for (int & It : DEFs) {
+ // CHECK-FIXES-NEXT: if (It == DEF) {
// CHECK-FIXES-NEXT: printf("I found %d\n", It);
}
@@ -407,7 +407,7 @@ void keywordConflict() {
*It = 5;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : ints)
+ // CHECK-FIXES: for (int & It : ints) {
// CHECK-FIXES-NEXT: It = 5;
U __FUNCTION__s;
@@ -416,7 +416,7 @@ void keywordConflict() {
int __FUNCTION__s_It = (*It).X + 2;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : __FUNCTION__s)
+ // CHECK-FIXES: for (auto & It : __FUNCTION__s) {
// CHECK-FIXES-NEXT: int __FUNCTION__s_It = It.X + 2;
}
@@ -435,7 +435,7 @@ void typeConflict() {
*It = sizeof(Val);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : Vals)
+ // CHECK-FIXES: for (int & It : Vals) {
// CHECK-FIXES-NEXT: It = sizeof(Val);
typedef struct Val TD;
@@ -454,7 +454,7 @@ void typeConflict() {
(void) *It;
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : TDs)
+ // CHECK-FIXES: for (auto & It : TDs) {
// CHECK-FIXES-NEXT: TD V;
// CHECK-FIXES-NEXT: V.X = 5;
@@ -464,7 +464,7 @@ void typeConflict() {
*It = sizeof(St);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : Sts)
+ // CHECK-FIXES: for (int & It : Sts) {
// CHECK-FIXES-NEXT: It = sizeof(St);
}
@@ -528,8 +528,8 @@ void f() {
}
// CHECK-MESSAGES: :[[@LINE-8]]:3: warning: use range-based for loop instead
// CHECK-MESSAGES: :[[@LINE-8]]:5: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Arr)
- // CHECK-FIXES-NEXT: for (auto & J : Arr)
+ // CHECK-FIXES: for (auto & I : Arr) {
+ // CHECK-FIXES-NEXT: for (auto & J : Arr) {
// CHECK-FIXES-NEXT: int K = I.X + J.X;
// CHECK-FIXES-NOT: int L = I.X + I.X;
@@ -542,8 +542,8 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Nest)
- // CHECK-FIXES-NEXT: for (int J = 0; J < M; ++J)
+ // CHECK-FIXES: for (auto & I : Nest) {
+ // CHECK-FIXES-NEXT: for (int J = 0; J < M; ++J) {
// CHECK-FIXES-NEXT: printf("Got item %d", I[J].X);
// Note that the order of M and N are switched for this test.
@@ -554,8 +554,8 @@ void f() {
}
// CHECK-MESSAGES: :[[@LINE-4]]:5: warning: use range-based for loop instead
// CHECK-FIXES-NOT: for (auto & {{[a-zA-Z_]+}} : Nest[I])
- // CHECK-FIXES: for (int J = 0; J < M; ++J)
- // CHECK-FIXES-NEXT: for (auto & I : Nest)
+ // CHECK-FIXES: for (int J = 0; J < M; ++J) {
+ // CHECK-FIXES-NEXT: for (auto & I : Nest) {
// CHECK-FIXES-NEXT: printf("Got item %d", I[J].X);
// The inner loop is also convertible.
@@ -566,8 +566,8 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : NestT)
- // CHECK-FIXES-NEXT: for (T::iterator TI = I.begin(), TE = I.end(); TI != TE; ++TI)
+ // CHECK-FIXES: for (auto & I : NestT) {
+ // CHECK-FIXES-NEXT: for (T::iterator TI = I.begin(), TE = I.end(); TI != TE; ++TI) {
// CHECK-FIXES-NEXT: printf("%d", *TI);
// The inner loop is also convertible.
@@ -578,8 +578,8 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto I : NestS)
- // CHECK-FIXES-NEXT: for (S::const_iterator SI = I.begin(), SE = I.end(); SI != SE; ++SI)
+ // CHECK-FIXES: for (auto I : NestS) {
+ // CHECK-FIXES-NEXT: for (S::const_iterator SI = I.begin(), SE = I.end(); SI != SE; ++SI) {
// CHECK-FIXES-NEXT: printf("%d", *SI);
for (Nested<S>::const_iterator I = NestS.begin(), E = NestS.end(); I != E; ++I) {
@@ -590,7 +590,7 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-7]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto Ss : NestS)
+ // CHECK-FIXES: for (auto Ss : NestS) {
for (Nested<S>::iterator I = NestS.begin(), E = NestS.end(); I != E; ++I) {
S &Ss = *I;
@@ -600,7 +600,7 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-7]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Ss : NestS)
+ // CHECK-FIXES: for (auto & Ss : NestS) {
Foo foo;
for (Nested<S>::const_iterator I = NestS.begin(), E = NestS.end(); I != E; ++I) {
@@ -611,7 +611,7 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-7]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto Ss : NestS)
+ // CHECK-FIXES: for (auto Ss : NestS) {
for (Nested<S>::iterator I = NestS.begin(), E = NestS.end(); I != E; ++I) {
S &Ss = *I;
@@ -621,7 +621,7 @@ void f() {
}
}
// CHECK-MESSAGES: :[[@LINE-7]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & Ss : NestS)
+ // CHECK-FIXES: for (auto & Ss : NestS) {
}
@@ -638,7 +638,7 @@ void complexContainer() {
MutableVal J = *I;
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & I : Exes[Index].getS())
+ // CHECK-FIXES: for (auto & I : Exes[Index].getS()) {
// CHECK-FIXES-NEXT: MutableVal K = I;
// CHECK-FIXES-NEXT: MutableVal J = I;
}
@@ -650,7 +650,7 @@ void f() {
printf("I found %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : Tt)
+ // CHECK-FIXES: for (int & It : Tt) {
// CHECK-FIXES-NEXT: printf("I found %d\n", It);
T *Pt;
@@ -658,7 +658,7 @@ void f() {
printf("I found %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : *Pt)
+ // CHECK-FIXES: for (int & It : *Pt) {
// CHECK-FIXES-NEXT: printf("I found %d\n", It);
S Ss;
@@ -666,7 +666,7 @@ void f() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
S *Ps;
@@ -674,35 +674,35 @@ void f() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & P : *Ps)
+ // CHECK-FIXES: for (auto & P : *Ps) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", P.X);
for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) {
printf("s has value %d\n", It->X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) {
It->X = 3;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: It.X = 3;
for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) {
(*It).X = 3;
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: It.X = 3;
for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) {
It->nonConstFun(4, 5);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Ss)
+ // CHECK-FIXES: for (auto & It : Ss) {
// CHECK-FIXES-NEXT: It.nonConstFun(4, 5);
U Uu;
@@ -710,14 +710,14 @@ void f() {
printf("s has value %d\n", It->X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Uu)
+ // CHECK-FIXES: for (auto & It : Uu) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
for (U::iterator It = Uu.begin(); It != Uu.end(); ++It) {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : Uu)
+ // CHECK-FIXES: for (auto & It : Uu) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
U::iterator A;
@@ -733,7 +733,7 @@ void f() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : V)
+ // CHECK-FIXES: for (int & It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
for (dependent<int>::iterator It(V.begin());
@@ -741,7 +741,7 @@ void f() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & It : V)
+ // CHECK-FIXES: for (int & It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
doublyDependent<int, int> intmap;
@@ -750,7 +750,7 @@ void f() {
printf("intmap[%d] = %d", It->first, It->second);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto & It : intmap)
+ // CHECK-FIXES: for (auto & It : intmap) {
// CHECK-FIXES-NEXT: printf("intmap[%d] = %d", It.first, It.second);
}
@@ -765,7 +765,7 @@ void different_type() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto It : Ss)
+ // CHECK-FIXES: for (auto It : Ss) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", It.X);
S *Ps;
@@ -773,7 +773,7 @@ void different_type() {
printf("s has value %d\n", (*It).X);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (auto P : *Ps)
+ // CHECK-FIXES: for (auto P : *Ps) {
// CHECK-FIXES-NEXT: printf("s has value %d\n", P.X);
dependent<int> V;
@@ -781,14 +781,14 @@ void different_type() {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int It : V)
+ // CHECK-FIXES: for (int It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
for (dependent<int>::const_iterator It(V.begin()); It != V.end(); ++It) {
printf("Fibonacci number is %d\n", *It);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int It : V)
+ // CHECK-FIXES: for (int It : V) {
// CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It);
}
@@ -808,7 +808,7 @@ void messing_with_macros() {
printf("Value: %d\n", Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: printf("Value: %d\n", I);
for (int I = 0; I < N; ++I) {
@@ -821,7 +821,7 @@ void messing_with_macros() {
THREE_PARAM(Arr[I], Arr[I], Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & I : Arr)
+ // CHECK-FIXES: for (int & I : Arr) {
// CHECK-FIXES-NEXT: TWO_PARAM(I, I);
// CHECK-FIXES-NEXT: THREE_PARAM(I, I, I);
}
@@ -907,10 +907,11 @@ void capturesIndex() {
F(Arr[I]);
}
// CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
- // CHECK-FIXES-NEXT: auto F = [Arr, &I](int k)
- // CHECK-FIXES-NEXT: printf("%d\n", I + k);
- // CHECK-FIXES: F(I);
+ // CHECK-FIXES: for (int I : Arr) {
+ // CHECK-FIXES-NEXT: auto F = [Arr, &I](int k) {
+ // CHECK-FIXES-NEXT: printf("%d\n", I + k);
+ // CHECK-FIXES-NEXT: };
+ // CHECK-FIXES-NEXT: F(I);
}
void implicitCapture() {
@@ -939,8 +940,8 @@ void implicitCapture() {
};
}
// CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
- // CHECK-FIXES-NEXT: auto G3 = [&]()
+ // CHECK-FIXES: for (int I : Arr) {
+ // CHECK-FIXES-NEXT: auto G3 = [&]() {
// CHECK-FIXES-NEXT: int R3 = I;
// CHECK-FIXES-NEXT: int J3 = I + R3;
@@ -950,8 +951,8 @@ void implicitCapture() {
};
}
// CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
- // CHECK-FIXES-NEXT: auto G4 = [=]()
+ // CHECK-FIXES: for (int I : Arr) {
+ // CHECK-FIXES-NEXT: auto G4 = [=]() {
// CHECK-FIXES-NEXT: int R4 = I + 5;
// Alias by value.
@@ -962,8 +963,8 @@ void implicitCapture() {
};
}
// CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int R5 : Arr)
- // CHECK-FIXES-NEXT: auto G5 = [&]()
+ // CHECK-FIXES: for (int R5 : Arr) {
+ // CHECK-FIXES-NEXT: auto G5 = [&]() {
// CHECK-FIXES-NEXT: int J5 = 8 + R5;
// Alias by reference.
@@ -974,8 +975,8 @@ void implicitCapture() {
};
}
// CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int & R6 : Arr)
- // CHECK-FIXES-NEXT: auto G6 = [&]()
+ // CHECK-FIXES: for (int & R6 : Arr) {
+ // CHECK-FIXES-NEXT: auto G6 = [&]() {
// CHECK-FIXES-NEXT: int J6 = -1 + R6;
}
@@ -1029,14 +1030,14 @@ void captureByValue() {
auto C1 = [&Arr, I]() { if (Arr[I] == 1); };
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Arr)
+ // CHECK-FIXES: for (int I : Arr) {
// CHECK-FIXES-NEXT: auto C1 = [&Arr, &I]() { if (I == 1); };
for (unsigned I = 0; I < Dep.size(); ++I) {
auto C2 = [&Dep, I]() { if (Dep[I] == 2); };
}
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Dep)
+ // CHECK-FIXES: for (int I : Dep) {
// CHECK-FIXES-NEXT: auto C2 = [&Dep, &I]() { if (I == 2); };
}
@@ -1062,7 +1063,7 @@ void f() {
E Ee{ { { g( { Array[I] } ) } } };
}
// CHECK-MESSAGES: :[[@LINE-7]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for (int I : Array)
+ // CHECK-FIXES: for (int I : Array) {
// CHECK-FIXES-NEXT: int A{ I };
// CHECK-FIXES-NEXT: int B{ g(I) };
// CHECK-FIXES-NEXT: int C{ g( { I } ) };
@@ -1079,7 +1080,7 @@ void bug28341() {
if (value > 127)
;
// CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
- // CHECK-FIXES: for(unsigned char value : v)
+ // CHECK-FIXES: for(unsigned char value : v) {
// CHECK-FIXES-NEXT: if (value > 127)
}
}
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared.cpp
index 65ece77..686b998 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-make-shared %t -- -- -I %S/Inputs/smart-ptr
+// RUN: %check_clang_tidy %s modernize-make-shared %t -- -- -I %S/Inputs/smart-ptr
#include "shared_ptr.h"
// CHECK-FIXES: #include <memory>
@@ -226,7 +226,7 @@ void initialization(int T, Base b) {
// CHECK-FIXES: std::shared_ptr<APair> PAggr = std::make_shared<APair>(APair{T, 1});
PAggr.reset(new APair{T, 1});
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use std::make_shared instead
- // CHECK-FIXES: std::make_shared<APair>(APair{T, 1});
+ // CHECK-FIXES: PAggr = std::make_shared<APair>(APair{T, 1});
// Test different kinds of initialization of the pointee, when the shared_ptr
// is initialized with braces.
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp
index 13103c7..bcdf4fb 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++14-or-later %s modernize-make-unique %t -- -- -I %S/Inputs/smart-ptr
+// RUN: %check_clang_tidy -std=c++14-or-later %s modernize-make-unique %t -- -- -I %S/Inputs/smart-ptr
#include "unique_ptr.h"
#include "initializer_list.h"
@@ -271,7 +271,7 @@ void initialization(int T, Base b) {
// CHECK-FIXES: std::unique_ptr<APair> PAggr = std::make_unique<APair>(APair{T, 1});
PAggr.reset(new APair{T, 1});
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use std::make_unique instead
- // CHECK-FIXES: std::make_unique<APair>(APair{T, 1});
+ // CHECK-FIXES: PAggr = std::make_unique<APair>(APair{T, 1});
// Check aggregate init with intermediate temporaries.
std::unique_ptr<APair> PAggrTemp = std::unique_ptr<APair>(new APair({T, 1}));
@@ -480,7 +480,7 @@ void initialization(int T, Base b) {
std::unique_ptr<int[]> FI;
FI.reset(new int[5]()); // value initialization.
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning:
- // CHECK-FIXES: FI = std::make_unique<int[]>(5);
+ // CHECK-FIXES: FI = std::make_unique<int[]>(5); // value initialization.
// The check doesn't give warnings and fixes for cases where the original new
// expression does default initialization.
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/min-max-use-initializer-list.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/min-max-use-initializer-list.cpp
index ae270dc..9dc05b9 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/min-max-use-initializer-list.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/min-max-use-initializer-list.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-min-max-use-initializer-list %t
+// RUN: %check_clang_tidy %s modernize-min-max-use-initializer-list %t
// CHECK-FIXES: #include <algorithm>
namespace utils {
@@ -206,7 +206,7 @@ int min7 = std::min(1, std::min(2, 3, fless_than), fgreater_than);
// CHECK-FIXES: int min7 = std::min(1, std::min(2, 3, fless_than), fgreater_than);
int max8 = std::max(1, std::max(2, 3, fless_than), less_than);
-// CHECK-FIXES: int max8 = std::max(1, std::max(2, 3, fless_than), less_than)
+// CHECK-FIXES: int max8 = std::max(1, std::max(2, 3, fless_than), less_than);
int min8 = std::min(1, std::min(2, 3, fless_than), less_than);
// CHECK-FIXES: int min8 = std::min(1, std::min(2, 3, fless_than), less_than);
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value.cpp
index 7538862..cc237f4 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-pass-by-value %t -- -- -fno-delayed-template-parsing
+// RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -fno-delayed-template-parsing
namespace {
// POD types are trivially move constructible.
@@ -92,7 +92,7 @@ struct H {
using namespace ns_H;
H::H(const HMovable &M) : M(M) {}
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: pass by value and use std::move
-// CHECK-FIXES: H(HMovable M) : M(std::move(M)) {}
+// CHECK-FIXES: H::H(HMovable M) : M(std::move(M)) {}
// Try messing up with macros.
#define MOVABLE_PARAM(Name) const Movable & Name
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp
index 935163b..6311497 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-redundant-void-arg %t
+// RUN: %check_clang_tidy %s modernize-redundant-void-arg %t
#define NULL 0
@@ -452,22 +452,22 @@ struct DefinitionWithNoBody {
#define BODY {}
#define LAMBDA1 [](void){}
// CHECK-MESSAGES: :[[@LINE-1]]:20: warning: redundant void argument list in lambda expression [modernize-redundant-void-arg]
-// CHECK-FIXES: LAMBDA1 [](){}
+// CHECK-FIXES: #define LAMBDA1 [](){}
#define LAMBDA2 [](void)BODY
// CHECK-MESSAGES: :[[@LINE-1]]:20: warning: redundant void argument list in lambda expression [modernize-redundant-void-arg]
-// CHECK-FIXES: LAMBDA2 []()BODY
+// CHECK-FIXES: #define LAMBDA2 []()BODY
#define LAMBDA3(captures, args, body) captures args body
#define WRAP(...) __VA_ARGS__
#define LAMBDA4 (void)LAMBDA3([],(void),BODY)
// CHECK-MESSAGES: :[[@LINE-1]]:35: warning: redundant void argument list in lambda expression [modernize-redundant-void-arg]
-// CHECK-FIXES: LAMBDA4 (void)LAMBDA3([],(),BODY)
+// CHECK-FIXES: #define LAMBDA4 (void)LAMBDA3([],(),BODY)
#define LAMBDA5 []() -> void (*)(void) {return BODY;}
// CHECK-MESSAGES: :[[@LINE-1]]:34: warning: redundant void argument list in lambda expression [modernize-redundant-void-arg]
-// CHECK-FIXES: LAMBDA5 []() -> void (*)() {return BODY;}
+// CHECK-FIXES: #define LAMBDA5 []() -> void (*)() {return BODY;}
void lambda_expression_with_macro_test(){
(void)LAMBDA1;
(void)LAMBDA2;
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp
index dea0857..2281c1a 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-replace-auto-ptr %t -- -- -I %S/Inputs/replace-auto-ptr
+// RUN: %check_clang_tidy %s modernize-replace-auto-ptr %t -- -- -I %S/Inputs/replace-auto-ptr
// CHECK-FIXES: #include <utility>
@@ -15,7 +15,7 @@ std::auto_ptr<Derived> create_derived_ptr();
// Test function return values (declaration)
std::auto_ptr<char> f_5();
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: auto_ptr is deprecated
-// CHECK-FIXES: std::unique_ptr<char> f_5()
+// CHECK-FIXES: std::unique_ptr<char> f_5();
// Test function parameters.
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast-remove-stars.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast-remove-stars.cpp
index 5b620ad..59d6d23a 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast-remove-stars.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast-remove-stars.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-auto %t -- \
+// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: {modernize-use-auto.RemoveStars: 'true' , modernize-use-auto.MinTypeNameLength: '0'}}" \
// RUN: -- -frtti
@@ -108,7 +108,7 @@ typedef unsigned char xmlChar;
do { \
xmlChar *s = (xmlChar *)(x); \
} while (false);
-// CHECK-FIXES: xmlChar *s = (xmlChar *)(x);
+// CHECK-FIXES: xmlChar *s = (xmlChar *)(x); {{\\}}
void f_cstyle_cast() {
auto *a = new A();
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast.cpp
index 3946b97..7f687ab 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-cast.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-auto %t -- \
+// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: {modernize-use-auto.MinTypeNameLength: '0'}}" \
// RUN: -- -I %S/Inputs/use-auto -frtti
@@ -108,7 +108,7 @@ typedef unsigned char xmlChar;
do { \
xmlChar *s = (xmlChar *)(x); \
} while (false);
-// CHECK-FIXES: xmlChar *s = (xmlChar *)(x);
+// CHECK-FIXES: xmlChar *s = (xmlChar *)(x); {{\\}}
void f_cstyle_cast() {
auto *a = new A();
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-for-pointer.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-for-pointer.cpp
index 1fd4189..2cb0208 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-for-pointer.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-for-pointer.cpp
@@ -1,20 +1,20 @@
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffix=REMOVE %s modernize-use-auto %t -- \
+// RUN: %check_clang_tidy -check-suffix=REMOVE %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: {modernize-use-auto.RemoveStars: 'true', modernize-use-auto.MinTypeNameLength: '0'}}"
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-auto %t -- \
+// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: {modernize-use-auto.RemoveStars: 'false', modernize-use-auto.MinTypeNameLength: '0'}}"
void pointerToFunction() {
void (*(*(f1)))() = static_cast<void (**)()>(nullptr);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use auto when initializing
- // CHECK-FIXES-REMOVE: auto f1 =
- // CHECK-FIXES: auto *f1 =
+ // CHECK-FIXES-REMOVE: auto f1 = static_cast<void (**)()>(nullptr);
+ // CHECK-FIXES: auto *f1 = static_cast<void (**)()>(nullptr);
}
void pointerToArray() {
int(*a1)[2] = new int[10][2];
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use auto when initializing
- // CHECK-FIXES-REMOVE: auto a1 =
- // CHECK-FIXES: auto *a1 =
+ // CHECK-FIXES-REMOVE: auto a1 = new int[10][2];
+ // CHECK-FIXES: auto *a1 = new int[10][2];
}
void memberFunctionPointer() {
@@ -23,7 +23,7 @@ void memberFunctionPointer() {
};
void(A::* a1)() = static_cast<void(A::*)()>(nullptr);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use auto when initializing
- // CHECK-FIXES-REMOVE: auto a1 =
- // CHECK-FIXES: auto *a1 =
+ // CHECK-FIXES-REMOVE: auto a1 = static_cast<void(A::*)()>(nullptr);
+ // CHECK-FIXES: auto *a1 = static_cast<void(A::*)()>(nullptr);
}
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-iterator.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-iterator.cpp
index 02fb646..a928b33 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-iterator.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-iterator.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++11,c++14 %s modernize-use-auto %t -- -- -I %S/Inputs/use-auto
+// RUN: %check_clang_tidy -std=c++11,c++14 %s modernize-use-auto %t -- -- -I %S/Inputs/use-auto
// FIXME: Fix the checker to work in C++17 mode.
#include "containers.h"
@@ -277,18 +277,18 @@ void pointer_to_iterator() {
void loop() {
for (std::vector<int>::iterator I = Vec.begin(); I != Vec.end(); ++I) {
// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use auto when declaring iterators
- // CHECK-FIXES: for (auto I = Vec.begin(); I != Vec.end(); ++I)
+ // CHECK-FIXES: for (auto I = Vec.begin(); I != Vec.end(); ++I) {
}
for (int_iterator I = Vec.begin(), E = Vec.end(); I != E; ++I) {
// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use auto when declaring iterators
- // CHECK-FIXES: for (auto I = Vec.begin(), E = Vec.end(); I != E; ++I)
+ // CHECK-FIXES: for (auto I = Vec.begin(), E = Vec.end(); I != E; ++I) {
}
std::vector<std::vector<int>::iterator> IterVec;
for (std::vector<int>::iterator I : IterVec) {
// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use auto when declaring iterators
- // CHECK-FIXES: for (auto I : IterVec)
+ // CHECK-FIXES: for (auto I : IterVec) {
}
}
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-min-type-name-length.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-min-type-name-length.cpp
index 6cea26e..e954cee 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-min-type-name-length.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-auto-min-type-name-length.cpp
@@ -1,7 +1,7 @@
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffix=0-0 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: false, modernize-use-auto.MinTypeNameLength: 0}}" -- -frtti
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffix=0-8 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: false, modernize-use-auto.MinTypeNameLength: 8}}" -- -frtti
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffix=1-0 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: true, modernize-use-auto.MinTypeNameLength: 0}}" -- -frtti
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffix=1-8 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: true, modernize-use-auto.MinTypeNameLength: 8}}" -- -frtti
+// RUN: %check_clang_tidy -check-suffix=0-0 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: false, modernize-use-auto.MinTypeNameLength: 0}}" -- -frtti
+// RUN: %check_clang_tidy -check-suffix=0-8 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: false, modernize-use-auto.MinTypeNameLength: 8}}" -- -frtti
+// RUN: %check_clang_tidy -check-suffix=1-0 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: true, modernize-use-auto.MinTypeNameLength: 0}}" -- -frtti
+// RUN: %check_clang_tidy -check-suffix=1-8 %s modernize-use-auto %t -- -config="{CheckOptions: {modernize-use-auto.RemoveStars: true, modernize-use-auto.MinTypeNameLength: 8}}" -- -frtti
template <class T> extern T foo();
template <class T> struct P { explicit P(T t) : t_(t) {} T t_;};
@@ -17,10 +17,10 @@ int bar() {
// CHECK-FIXES-1-0: auto i = {{.*}}
// CHECK-FIXES-1-8: long i = {{.*}}
const long ci = static_cast<long>(foo<const long>());
- // CHECK-FIXES-0-0: auto ci = {{.*}}
- // CHECK-FIXES-0-8: long ci = {{.*}}
- // CHECK-FIXES-1-0: auto ci = {{.*}}
- // CHECK-FIXES-1-8: long ci = {{.*}}
+ // CHECK-FIXES-0-0: const auto ci = {{.*}}
+ // CHECK-FIXES-0-8: const long ci = {{.*}}
+ // CHECK-FIXES-1-0: const auto ci = {{.*}}
+ // CHECK-FIXES-1-8: const long ci = {{.*}}
long *pi = static_cast<long *>(foo<long *>());
// CHECK-FIXES-0-0: auto *pi = {{.*}}
// CHECK-FIXES-0-8: long *pi = {{.*}}
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-copy.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-copy.cpp
index 9639e0e..3afa4a4 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-copy.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-copy.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-equals-default %t -- \
+// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- \
// RUN: -config="{CheckOptions: {modernize-use-equals-default.IgnoreMacros: false}}" \
// RUN: -- -fno-delayed-template-parsing -fexceptions -Wno-error=return-type
@@ -35,7 +35,7 @@ struct IL {
// Skip unions.
union NU {
NU(const NU &Other) : Field(Other.Field) {}
- // CHECK-FIXES: NU(const NU &Other) :
+ // CHECK-FIXES: NU(const NU &Other) : Field(Other.Field) {}
NU &operator=(const NU &Other) {
Field = Other.Field;
return *this;
@@ -47,7 +47,7 @@ union NU {
// Skip structs/classes containing anonymous unions.
struct SU {
SU(const SU &Other) : Field(Other.Field) {}
- // CHECK-FIXES: SU(const SU &Other) :
+ // CHECK-FIXES: SU(const SU &Other) : Field(Other.Field) {}
SU &operator=(const SU &Other) {
Field = Other.Field;
return *this;
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp
index a606b84..2eefdf9 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-equals-default %t -- -- -fno-delayed-template-parsing -fexceptions
+// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- -- -fno-delayed-template-parsing -fexceptions
// Out of line definition.
class OL {
@@ -145,7 +145,7 @@ struct ST {
// CHECK-FIXES: ST() = default;
~ST() {}
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use '= default'
- // CHECK-FIXES: ST() = default;
+ // CHECK-FIXES: ~ST() = default;
};
// Deleted constructor/destructor.
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison-qt.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison-qt.cpp
index 135ee27..1f26ff3 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison-qt.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison-qt.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++17 %s modernize-use-integer-sign-comparison %t -- \
+// RUN: %check_clang_tidy -std=c++17 %s modernize-use-integer-sign-comparison %t -- \
// RUN: -config="{CheckOptions: {modernize-use-integer-sign-comparison.EnableQtSupport: true}}"
// CHECK-FIXES: #include <QtCore/q20utility.h>
@@ -92,7 +92,8 @@ int AllComparisons() {
if (static_cast<unsigned int>(uArray[2]) < static_cast<int>(sArray[2]))
return 0;
// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]
-// CHECK-FIXES: if (q20::cmp_less(uArray[2],sArray[2]))
+// CHECK-FIXES: if (q20::cmp_less(uArray[2],sArray[2])))
+// FIXME: There should only be 2 closing braces. The fix-it inserts an unbalanced one.
if ((unsigned int)uArray[3] < (int)sArray[3])
return 0;
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison.cpp
index e0a84ef..628cee0 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes -std=c++20 %s modernize-use-integer-sign-comparison %t
+// RUN: %check_clang_tidy -std=c++20-or-later %s modernize-use-integer-sign-comparison %t
// CHECK-FIXES: #include <utility>
@@ -91,7 +91,8 @@ int AllComparisons() {
if (static_cast<unsigned int>(uArray[2]) < static_cast<int>(sArray[2]))
return 0;
// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]
-// CHECK-FIXES: if (std::cmp_less(uArray[2],sArray[2]))
+// CHECK-FIXES: if (std::cmp_less(uArray[2],sArray[2])))
+// FIXME: There should only be 2 closing braces. The fix-it inserts an unbalanced one.
if ((unsigned int)uArray[3] < (int)sArray[3])
return 0;
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.cpp
index fe9d6de..27a9629 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-nullptr %t -- \
+// RUN: %check_clang_tidy %s modernize-use-nullptr %t -- \
// RUN: -config="{CheckOptions: {modernize-use-nullptr.NullMacros: 'MY_NULL,NULL'}}"
#define NULL 0
@@ -91,7 +91,7 @@ template <typename T> struct pear {
// it is often defined as __null and the check will catch it.)
void f() { x = __null; }
// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: use nullptr [modernize-use-nullptr]
- // CHECK-FIXES: x = nullptr;
+ // CHECK-FIXES: void f() { x = nullptr; }
// But if you say 0, we allow the possibility that T can be used with integral
// and pointer types, and "0" is an acceptable initializer (even if "{}" might
@@ -118,11 +118,13 @@ void test_macro_args() {
// CHECK-MESSAGES: :[[@LINE-1]]:27: warning: use nullptr
// CHECK-FIXES: IS_EQ(static_cast<int*>(nullptr), Ptr);
- IS_EQ(0, Ptr); // literal
+ // literal
+ IS_EQ(0, Ptr);
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use nullptr
// CHECK-FIXES: IS_EQ(nullptr, Ptr);
- IS_EQ(NULL, Ptr); // macro
+ // macro
+ IS_EQ(NULL, Ptr);
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use nullptr
// CHECK-FIXES: IS_EQ(nullptr, Ptr);
@@ -205,7 +207,7 @@ void test_macro_args() {
} a[2] = {ENTRY(0), {0}};
// CHECK-MESSAGES: :[[@LINE-1]]:19: warning: use nullptr
// CHECK-MESSAGES: :[[@LINE-2]]:24: warning: use nullptr
- // CHECK-FIXES: a[2] = {ENTRY(nullptr), {nullptr}};
+ // CHECK-FIXES: } a[2] = {ENTRY(nullptr), {nullptr}};
#undef ENTRY
#define assert1(expr) (expr) ? 0 : 1
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-override.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-override.cpp
index 809e435..8e19fdd 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-override.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-override.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy --match-partial-fixes %s modernize-use-override,cppcoreguidelines-explicit-virtual-functions %t -- -- -fexceptions
+// RUN: %check_clang_tidy %s modernize-use-override,cppcoreguidelines-explicit-virtual-functions %t -- -- -fexceptions
#define ABSTRACT = 0
@@ -96,7 +96,8 @@ public:
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer using
// CHECK-FIXES: void j() const override;
- virtual MustUseResultObject k(); // Has an implicit attribute.
+ // Has an implicit attribute.
+ virtual MustUseResultObject k();
// CHECK-MESSAGES: :[[@LINE-1]]:31: warning: prefer using
// CHECK-FIXES: MustUseResultObject k() override;
@@ -203,7 +204,8 @@ public:
// CHECK-MESSAGES: :[[@LINE-2]]:16: warning: prefer using
// CHECK-FIXES: void j() const override
- virtual MustUseResultObject k(); // Has an implicit attribute.
+ // Has an implicit attribute.
+ virtual MustUseResultObject k();
// CHECK-MESSAGES: :[[@LINE-1]]:31: warning: prefer using
// CHECK-FIXES: MustUseResultObject k() override;
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp
index ea97d5b..6a6cb98 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp
@@ -1,11 +1,11 @@
-// RUN: %check_clang_tidy --match-partial-fixes \
-// RUN: -std=c++20 %s modernize-use-std-format %t -- \
+// RUN: %check_clang_tidy \
+// RUN: -std=c++20-or-later %s modernize-use-std-format %t -- \
// RUN: -config="{CheckOptions: {modernize-use-std-format.StrictMode: true}}" \
// RUN: -- -isystem %clang_tidy_headers \
// RUN: -DPRI_CMDLINE_MACRO="\"s\"" \
// RUN: -D__PRI_CMDLINE_MACRO="\"s\""
-// RUN: %check_clang_tidy --match-partial-fixes \
-// RUN: -std=c++20 %s modernize-use-std-format %t -- \
+// RUN: %check_clang_tidy \
+// RUN: -std=c++20-or-later %s modernize-use-std-format %t -- \
// RUN: -config="{CheckOptions: {modernize-use-std-format.StrictMode: false}}" \
// RUN: -- -isystem %clang_tidy_headers \
// RUN: -DPRI_CMDLINE_MACRO="\"s\"" \
@@ -70,32 +70,32 @@ std::string StrFormat_strict_conversion() {
std::string StrFormat_field_width_and_precision() {
auto s1 = absl::StrFormat("width only:%*d width and precision:%*.*f precision only:%.*f", 3, 42, 4, 2, 3.14159265358979323846, 5, 2.718);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("width only:{:{}} width and precision:{:{}.{}f} precision only:{:.{}f}", 42, 3, 3.14159265358979323846, 4, 2, 2.718, 5);
+ // CHECK-FIXES: auto s1 = std::format("width only:{:{}} width and precision:{:{}.{}f} precision only:{:.{}f}", 42, 3, 3.14159265358979323846, 4, 2, 2.718, 5);
auto s2 = absl::StrFormat("width and precision positional:%1$*2$.*3$f after", 3.14159265358979323846, 4, 2);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("width and precision positional:{0:{1}.{2}f} after", 3.14159265358979323846, 4, 2);
+ // CHECK-FIXES: auto s2 = std::format("width and precision positional:{0:{1}.{2}f} after", 3.14159265358979323846, 4, 2);
const int width = 10, precision = 3;
const unsigned int ui1 = 42, ui2 = 43, ui3 = 44;
auto s3 = absl::StrFormat("casts width only:%*d width and precision:%*.*d precision only:%.*d\n", 3, ui1, 4, 2, ui2, 5, ui3);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES-NOTSTRICT: std::format("casts width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", ui1, 3, ui2, 4, 2, ui3, 5);
- // CHECK-FIXES-STRICT: std::format("casts width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", static_cast<int>(ui1), 3, static_cast<int>(ui2), 4, 2, static_cast<int>(ui3), 5);
+ // CHECK-FIXES-NOTSTRICT: auto s3 = std::format("casts width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", ui1, 3, ui2, 4, 2, ui3, 5);
+ // CHECK-FIXES-STRICT: auto s3 = std::format("casts width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", static_cast<int>(ui1), 3, static_cast<int>(ui2), 4, 2, static_cast<int>(ui3), 5);
auto s4 = absl::StrFormat("c_str removal width only:%*s width and precision:%*.*s precision only:%.*s", 3, s1.c_str(), 4, 2, s2.c_str(), 5, s3.c_str());
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("c_str removal width only:{:>{}} width and precision:{:>{}.{}} precision only:{:.{}}", s1, 3, s2, 4, 2, s3, 5);
+ // CHECK-FIXES: auto s4 = std::format("c_str removal width only:{:>{}} width and precision:{:>{}.{}} precision only:{:.{}}", s1, 3, s2, 4, 2, s3, 5);
const std::string *ps1 = &s1, *ps2 = &s2, *ps3 = &s3;
auto s5 = absl::StrFormat("c_str() removal pointer width only:%-*s width and precision:%-*.*s precision only:%-.*s", 3, ps1->c_str(), 4, 2, ps2->c_str(), 5, ps3->c_str());
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("c_str() removal pointer width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", *ps1, 3, *ps2, 4, 2, *ps3, 5);
+ // CHECK-FIXES: auto s5 = std::format("c_str() removal pointer width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", *ps1, 3, *ps2, 4, 2, *ps3, 5);
iterator<std::string> is1, is2, is3;
auto s6 = absl::StrFormat("c_str() removal iterator width only:%-*s width and precision:%-*.*s precision only:%-.*s", 3, is1->c_str(), 4, 2, is2->c_str(), 5, is3->c_str());
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("c_str() removal iterator width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", *is1, 3, *is2, 4, 2, *is3, 5);
+ // CHECK-FIXES: auto s6 = std::format("c_str() removal iterator width only:{:{}} width and precision:{:{}.{}} precision only:{:.{}}", *is1, 3, *is2, 4, 2, *is3, 5);
return s1 + s2 + s3 + s4 + s5 + s6;
}
@@ -105,7 +105,7 @@ void StrFormat_macros() {
#define FORMAT absl::StrFormat
auto s1 = FORMAT("Hello %d", 42);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("Hello {}", 42);
+ // CHECK-FIXES: auto s1 = std::format("Hello {}", 42);
// Arguments that are macros aren't replaced with their value, even if they are rearranged.
#define VALUE 3.14159265358979323846
@@ -113,7 +113,7 @@ void StrFormat_macros() {
#define PRECISION 4
auto s3 = absl::StrFormat("Hello %*.*f", WIDTH, PRECISION, VALUE);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("Hello {:{}.{}f}", VALUE, WIDTH, PRECISION);
+ // CHECK-FIXES: auto s3 = std::format("Hello {:{}.{}f}", VALUE, WIDTH, PRECISION);
const uint64_t u64 = 42;
const uint32_t u32 = 32;
@@ -121,11 +121,11 @@ void StrFormat_macros() {
auto s4 = absl::StrFormat("Replaceable macro at end %" PRIu64, u64);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("Replaceable macro at end {}", u64);
+ // CHECK-FIXES: auto s4 = std::format("Replaceable macro at end {}", u64);
auto s5 = absl::StrFormat("Replaceable macros in middle %" PRIu64 " %" PRIu32 "\n", u64, u32);
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: use 'std::format' instead of 'StrFormat' [modernize-use-std-format]
- // CHECK-FIXES: std::format("Replaceable macros in middle {} {}\n", u64, u32);
+ // CHECK-FIXES: auto s5 = std::format("Replaceable macros in middle {} {}\n", u64, u32);
// These need PRI and __PRI prefixes so that the check get as far as looking for
// where the macro comes from.
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
index 9bf60e7..ec37f07 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
@@ -1,11 +1,11 @@
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffixes=,STRICT \
-// RUN: -std=c++23 %s modernize-use-std-print %t -- \
+// RUN: %check_clang_tidy -check-suffixes=,STRICT \
+// RUN: -std=c++23-or-later %s modernize-use-std-print %t -- \
// RUN: -config="{CheckOptions: {modernize-use-std-print.StrictMode: true}}" \
// RUN: -- -isystem %clang_tidy_headers -fexceptions \
// RUN: -DPRI_CMDLINE_MACRO="\"s\"" \
// RUN: -D__PRI_CMDLINE_MACRO="\"s\""
-// RUN: %check_clang_tidy --match-partial-fixes -check-suffixes=,NOTSTRICT \
-// RUN: -std=c++23 %s modernize-use-std-print %t -- \
+// RUN: %check_clang_tidy -check-suffixes=,NOTSTRICT \
+// RUN: -std=c++23-or-later %s modernize-use-std-print %t -- \
// RUN: -config="{CheckOptions: {modernize-use-std-print.StrictMode: false}}" \
// RUN: -- -isystem %clang_tidy_headers -fexceptions \
// RUN: -DPRI_CMDLINE_MACRO="\"s\"" \
@@ -113,7 +113,7 @@ int printf_uses_return_value(int choice) {
for (printf("for init statement %d\n", i);;)
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: use 'std::println' instead of 'printf' [modernize-use-std-print]
- // CHECK-FIXES: std::println("for init statement {}", i);
+ // CHECK-FIXES: for (std::println("for init statement {}", i);;)
;;
for (int j = printf("for init statement %d\n", i);;)
@@ -124,7 +124,7 @@ int printf_uses_return_value(int choice) {
for (;; printf("for expression %d\n", i))
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: use 'std::println' instead of 'printf' [modernize-use-std-print]
- // CHECK-FIXES: std::println("for expression {}", i)
+ // CHECK-FIXES: for (;; std::println("for expression {}", i))
;;
for (auto C : "foo")
@@ -228,7 +228,7 @@ int fprintf_uses_return_value(int choice) {
for (fprintf(stderr, "for init statement %d\n", i);;)
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: use 'std::println' instead of 'fprintf' [modernize-use-std-print]
- // CHECK-FIXES: std::println(stderr, "for init statement {}", i);
+ // CHECK-FIXES: for (std::println(stderr, "for init statement {}", i);;)
;;
for (int j = fprintf(stderr, "for init statement %d\n", i);;)
@@ -239,7 +239,7 @@ int fprintf_uses_return_value(int choice) {
for (;; fprintf(stderr, "for expression %d\n", i))
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: use 'std::println' instead of 'fprintf' [modernize-use-std-print]
- // CHECK-FIXES: std::println(stderr, "for expression {}", i)
+ // CHECK-FIXES: for (;; std::println(stderr, "for expression {}", i))
;;
for (auto C : "foo")