diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-08-08 14:53:52 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-08-08 14:53:52 +0000 |
commit | f1a6552a95ef359317405b6b905e452c0577d22c (patch) | |
tree | af10b95774e60b52b2270e32b9b11a7e868a0145 /clang-tools-extra/test/clang-tidy | |
parent | 64d31edef33097f3878a12285a6db4d1e9488454 (diff) | |
download | bcm5719-llvm-f1a6552a95ef359317405b6b905e452c0577d22c.tar.gz bcm5719-llvm-f1a6552a95ef359317405b6b905e452c0577d22c.zip |
[clang-tidy] 'implicit cast' -> 'implicit conversion'
Summary:
This patch renames checks, check options and changes messages to use correct
term "implicit conversion" instead of "implicit cast" (which has been in use in
Clang AST since ~10 years, but it's still technically incorrect w.r.t. C++
standard).
* performance-implicit-cast-in-loop -> performance-implicit-conversion-in-loop
* readability-implicit-bool-cast -> readability-implicit-bool-conversion
- readability-implicit-bool-cast.AllowConditionalIntegerCasts ->
readability-implicit-bool-conversion.AllowIntegerConditions
- readability-implicit-bool-cast.AllowConditionalPointerCasts ->
readability-implicit-bool-conversion.AllowPointerConditions
Reviewers: hokein, jdennett
Reviewed By: hokein
Subscribers: mgorny, JDevlieghere, xazax.hun, cfe-commits
Differential Revision: https://reviews.llvm.org/D36456
llvm-svn: 310366
Diffstat (limited to 'clang-tools-extra/test/clang-tidy')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/performance-implicit-conversion-in-loop.cpp (renamed from clang-tools-extra/test/clang-tidy/performance-implicit-cast-in-loop.cpp) | 12 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion-allow-in-conditions.cpp (renamed from clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast-allow-conditional-casts.cpp) | 20 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion-cxx98.cpp (renamed from clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast-cxx98.cpp) | 14 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp (renamed from clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast.cpp) | 168 |
4 files changed, 107 insertions, 107 deletions
diff --git a/clang-tools-extra/test/clang-tidy/performance-implicit-cast-in-loop.cpp b/clang-tools-extra/test/clang-tidy/performance-implicit-conversion-in-loop.cpp index 788debe78ff..7b1ad3967f0 100644 --- a/clang-tools-extra/test/clang-tidy/performance-implicit-cast-in-loop.cpp +++ b/clang-tools-extra/test/clang-tidy/performance-implicit-conversion-in-loop.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy %s performance-implicit-cast-in-loop %t +// RUN: %check_clang_tidy %s performance-implicit-conversion-in-loop %t // ---------- Classes used in the tests ---------- @@ -26,8 +26,8 @@ struct View { T end(); }; -// With this class, the implicit cast is a call to the (implicit) constructor of -// the class. +// With this class, the implicit conversion is a call to the (implicit) +// constructor of the class. template <typename T> class ImplicitWrapper { public: @@ -35,8 +35,8 @@ class ImplicitWrapper { ImplicitWrapper(const T& t); }; -// With this class, the implicit cast is a call to the conversion operators of -// SimpleClass and ComplexClass. +// With this class, the implicit conversion is a call to the conversion +// operators of SimpleClass and ComplexClass. template <typename T> class OperatorWrapper { public: @@ -98,7 +98,7 @@ void ComplexClassRefIterator() { void ImplicitSimpleClassIterator() { for (const ImplicitWrapper<SimpleClass>& foo : SimpleView()) {} - // CHECK-MESSAGES: [[@LINE-1]]:{{[0-9]*}}: warning: the type of the loop variable 'foo' is different from the one returned by the iterator and generates an implicit cast; you can either change the type to the correct one ('const SimpleClass &' but 'const auto&' is always a valid option) or remove the reference to make it explicit that you are creating a new value [performance-implicit-cast-in-loop] + // CHECK-MESSAGES: [[@LINE-1]]:{{[0-9]*}}: warning: the type of the loop variable 'foo' is different from the one returned by the iterator and generates an implicit conversion; you can either change the type to the matching one ('const SimpleClass &' but 'const auto&' is always a valid option) or remove the reference to make it explicit that you are creating a new value [performance-implicit-conversion-in-loop] // for (ImplicitWrapper<SimpleClass>& foo : SimpleView()) {} for (const ImplicitWrapper<SimpleClass> foo : SimpleView()) {} for (ImplicitWrapper<SimpleClass>foo : SimpleView()) {} diff --git a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast-allow-conditional-casts.cpp b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion-allow-in-conditions.cpp index 19c08eca70d..13524de8383 100644 --- a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast-allow-conditional-casts.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion-allow-in-conditions.cpp @@ -1,7 +1,7 @@ -// RUN: %check_clang_tidy %s readability-implicit-bool-cast %t \ +// RUN: %check_clang_tidy %s readability-implicit-bool-conversion %t \ // RUN: -config='{CheckOptions: \ -// RUN: [{key: readability-implicit-bool-cast.AllowConditionalIntegerCasts, value: 1}, \ -// RUN: {key: readability-implicit-bool-cast.AllowConditionalPointerCasts, value: 1}]}' \ +// RUN: [{key: readability-implicit-bool-conversion.AllowIntegerConditions, value: 1}, \ +// RUN: {key: readability-implicit-bool-conversion.AllowPointerConditions, value: 1}]}' \ // RUN: -- -std=c++11 template<typename T> @@ -15,14 +15,14 @@ struct Struct { }; -void regularImplicitCastIntegerToBoolIsNotIgnored() { +void regularImplicitConversionIntegerToBoolIsNotIgnored() { int integer = 0; functionTaking<bool>(integer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool [readability-implicit-bool-cast] + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool [readability-implicit-bool-conversion] // CHECK-FIXES: functionTaking<bool>(integer != 0); } -void implicitCastIntegerToBoolInConditionalsIsAllowed() { +void implicitConversionIntegerToBoolInConditionalsIsAllowed() { if (functionReturningInt()) {} if (!functionReturningInt()) {} if (functionReturningInt() && functionReturningPointer()) {} @@ -40,19 +40,19 @@ void implicitCastIntegerToBoolInConditionalsIsAllowed() { int *p1 = functionReturningPointer() ?: &value3; } -void regularImplicitCastPointerToBoolIsNotIgnored() { +void regularImplicitConversionPointerToBoolIsNotIgnored() { int* pointer = nullptr; functionTaking<bool>(pointer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int *' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int *' -> bool // CHECK-FIXES: functionTaking<bool>(pointer != nullptr); int Struct::* memberPointer = &Struct::member; functionTaking<bool>(memberPointer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int Struct::*' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int Struct::*' -> bool // CHECK-FIXES: functionTaking<bool>(memberPointer != nullptr); } -void implicitCastPointerToBoolInConditionalsIsAllowed() { +void implicitConversionPointerToBoolInConditionalsIsAllowed() { if (functionReturningPointer()) {} if (not functionReturningPointer()) {} int value1 = functionReturningPointer() ? 1 : 2; diff --git a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast-cxx98.cpp b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion-cxx98.cpp index 791c7a1f3ca..587f7e259d7 100644 --- a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast-cxx98.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion-cxx98.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy %s readability-implicit-bool-cast %t -- -- -std=c++98 +// RUN: %check_clang_tidy %s readability-implicit-bool-conversion %t -- -- -std=c++98 // We need NULL macro, but some buildbots don't like including <cstddef> header // This is a portable way of getting it to work @@ -15,31 +15,31 @@ struct Struct { void useOldNullMacroInReplacements() { int* pointer = NULL; functionTaking<bool>(pointer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int *' -> bool [readability-implicit-bool-cast] + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int *' -> bool [readability-implicit-bool-conversion] // CHECK-FIXES: functionTaking<bool>(pointer != 0); int Struct::* memberPointer = NULL; functionTaking<bool>(!memberPointer); - // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: implicit cast 'int Struct::*' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: implicit conversion 'int Struct::*' -> bool // CHECK-FIXES: functionTaking<bool>(memberPointer == 0); } void fixFalseLiteralConvertingToNullPointer() { functionTaking<int*>(false); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast bool -> 'int *' + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion bool -> 'int *' // CHECK-FIXES: functionTaking<int*>(0); int* pointer = NULL; if (pointer == false) {} - // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: implicit cast bool -> 'int *' + // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: implicit conversion bool -> 'int *' // CHECK-FIXES: if (pointer == 0) {} functionTaking<int Struct::*>(false); - // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit cast bool -> 'int Struct::*' + // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit conversion bool -> 'int Struct::*' // CHECK-FIXES: functionTaking<int Struct::*>(0); int Struct::* memberPointer = NULL; if (memberPointer != false) {} - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast bool -> 'int Struct::*' + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion bool -> 'int Struct::*' // CHECK-FIXES: if (memberPointer != 0) {} } diff --git a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast.cpp b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp index 9e4aac7eb87..0bdd6703c61 100644 --- a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-cast.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy %s readability-implicit-bool-cast %t +// RUN: %check_clang_tidy %s readability-implicit-bool-conversion %t // We need NULL macro, but some buildbots don't like including <cstddef> header // This is a portable way of getting it to work @@ -13,42 +13,42 @@ struct Struct { }; -////////// Implicit cast from bool. +////////// Implicit conversion from bool. -void implicitCastFromBoolSimpleCases() { +void implicitConversionFromBoolSimpleCases() { bool boolean = true; functionTaking<bool>(boolean); functionTaking<int>(boolean); - // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: implicit cast bool -> 'int' [readability-implicit-bool-cast] + // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: implicit conversion bool -> 'int' [readability-implicit-bool-conversion] // CHECK-FIXES: functionTaking<int>(static_cast<int>(boolean)); functionTaking<unsigned long>(boolean); - // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit cast bool -> 'unsigned long' + // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit conversion bool -> 'unsigned long' // CHECK-FIXES: functionTaking<unsigned long>(static_cast<unsigned long>(boolean)); functionTaking<char>(boolean); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast bool -> 'char' + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion bool -> 'char' // CHECK-FIXES: functionTaking<char>(static_cast<char>(boolean)); functionTaking<float>(boolean); - // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: implicit cast bool -> 'float' + // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: implicit conversion bool -> 'float' // CHECK-FIXES: functionTaking<float>(static_cast<float>(boolean)); functionTaking<double>(boolean); - // CHECK-MESSAGES: :[[@LINE-1]]:26: warning: implicit cast bool -> 'double' + // CHECK-MESSAGES: :[[@LINE-1]]:26: warning: implicit conversion bool -> 'double' // CHECK-FIXES: functionTaking<double>(static_cast<double>(boolean)); } -float implicitCastFromBoolInReturnValue() { +float implicitConversionFromBoolInReturnValue() { bool boolean = false; return boolean; - // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: implicit cast bool -> 'float' + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: implicit conversion bool -> 'float' // CHECK-FIXES: return static_cast<float>(boolean); } -void implicitCastFromBoolInSingleBoolExpressions(bool b1, bool b2) { +void implicitConversionFromBoolInSingleBoolExpressions(bool b1, bool b2) { bool boolean = true; boolean = b1 ^ b2; boolean = b1 && b2; @@ -58,71 +58,71 @@ void implicitCastFromBoolInSingleBoolExpressions(bool b1, bool b2) { boolean = b2 != false; int integer = boolean - 3; - // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: implicit cast bool -> 'int' + // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: implicit conversion bool -> 'int' // CHECK-FIXES: int integer = static_cast<int>(boolean) - 3; float floating = boolean / 0.3f; - // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: implicit cast bool -> 'float' + // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: implicit conversion bool -> 'float' // CHECK-FIXES: float floating = static_cast<float>(boolean) / 0.3f; char character = boolean; - // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: implicit cast bool -> 'char' + // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: implicit conversion bool -> 'char' // CHECK-FIXES: char character = static_cast<char>(boolean); } -void implicitCastFromBoollInComplexBoolExpressions() { +void implicitConversionFromBoollInComplexBoolExpressions() { bool boolean = true; bool anotherBoolean = false; int integer = boolean && anotherBoolean; - // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: implicit cast bool -> 'int' + // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: implicit conversion bool -> 'int' // CHECK-FIXES: int integer = static_cast<int>(boolean && anotherBoolean); unsigned long unsignedLong = (! boolean) + 4ul; - // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: implicit cast bool -> 'unsigned long' + // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: implicit conversion bool -> 'unsigned long' // CHECK-FIXES: unsigned long unsignedLong = static_cast<unsigned long>(! boolean) + 4ul; float floating = (boolean || anotherBoolean) * 0.3f; - // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: implicit cast bool -> 'float' + // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: implicit conversion bool -> 'float' // CHECK-FIXES: float floating = static_cast<float>(boolean || anotherBoolean) * 0.3f; double doubleFloating = (boolean && (anotherBoolean || boolean)) * 0.3; - // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: implicit cast bool -> 'double' + // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: implicit conversion bool -> 'double' // CHECK-FIXES: double doubleFloating = static_cast<double>(boolean && (anotherBoolean || boolean)) * 0.3; } -void implicitCastFromBoolLiterals() { +void implicitConversionFromBoolLiterals() { functionTaking<int>(true); - // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: implicit cast bool -> 'int' + // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: implicit conversion bool -> 'int' // CHECK-FIXES: functionTaking<int>(1); functionTaking<unsigned long>(false); - // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit cast bool -> 'unsigned long' + // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit conversion bool -> 'unsigned long' // CHECK-FIXES: functionTaking<unsigned long>(0u); functionTaking<signed char>(true); - // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: implicit cast bool -> 'signed char' + // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: implicit conversion bool -> 'signed char' // CHECK-FIXES: functionTaking<signed char>(1); functionTaking<float>(false); - // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: implicit cast bool -> 'float' + // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: implicit conversion bool -> 'float' // CHECK-FIXES: functionTaking<float>(0.0f); functionTaking<double>(true); - // CHECK-MESSAGES: :[[@LINE-1]]:26: warning: implicit cast bool -> 'double' + // CHECK-MESSAGES: :[[@LINE-1]]:26: warning: implicit conversion bool -> 'double' // CHECK-FIXES: functionTaking<double>(1.0); } -void implicitCastFromBoolInComparisons() { +void implicitConversionFromBoolInComparisons() { bool boolean = true; int integer = 0; functionTaking<bool>(boolean == integer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast bool -> 'int' + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion bool -> 'int' // CHECK-FIXES: functionTaking<bool>(static_cast<int>(boolean) == integer); functionTaking<bool>(integer != boolean); - // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: implicit cast bool -> 'int' + // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: implicit conversion bool -> 'int' // CHECK-FIXES: functionTaking<bool>(integer != static_cast<int>(boolean)); } @@ -142,7 +142,7 @@ void ignoreExplicitCastsFromBool() { char character = static_cast<char>(boolean); } -void ignoreImplicitCastFromBoolInMacroExpansions() { +void ignoreImplicitConversionFromBoolInMacroExpansions() { bool boolean = true; #define CAST_FROM_BOOL_IN_MACRO_BODY boolean + 3 @@ -152,7 +152,7 @@ void ignoreImplicitCastFromBoolInMacroExpansions() { int integerFromMacroArgument = CAST_FROM_BOOL_IN_MACRO_ARGUMENT(boolean); } -namespace ignoreImplicitCastFromBoolInTemplateInstantiations { +namespace ignoreImplicitConversionFromBoolInTemplateInstantiations { template<typename T> void templateFunction() { @@ -164,204 +164,204 @@ void useOfTemplateFunction() { templateFunction<int>(); } -} // namespace ignoreImplicitCastFromBoolInTemplateInstantiations +} // namespace ignoreImplicitConversionFromBoolInTemplateInstantiations -////////// Implicit cast to bool. +////////// Implicit conversions to bool. -void implicitCastToBoolSimpleCases() { +void implicitConversionToBoolSimpleCases() { int integer = 10; functionTaking<bool>(integer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool // CHECK-FIXES: functionTaking<bool>(integer != 0); unsigned long unsignedLong = 10; functionTaking<bool>(unsignedLong); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'unsigned long' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'unsigned long' -> bool // CHECK-FIXES: functionTaking<bool>(unsignedLong != 0u); float floating = 0.0f; functionTaking<bool>(floating); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'float' -> bool // CHECK-FIXES: functionTaking<bool>(floating != 0.0f); double doubleFloating = 1.0f; functionTaking<bool>(doubleFloating); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'double' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'double' -> bool // CHECK-FIXES: functionTaking<bool>(doubleFloating != 0.0); signed char character = 'a'; functionTaking<bool>(character); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'signed char' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'signed char' -> bool // CHECK-FIXES: functionTaking<bool>(character != 0); int* pointer = nullptr; functionTaking<bool>(pointer); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int *' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int *' -> bool // CHECK-FIXES: functionTaking<bool>(pointer != nullptr); auto pointerToMember = &Struct::member; functionTaking<bool>(pointerToMember); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int Struct::*' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int Struct::*' -> bool // CHECK-FIXES: functionTaking<bool>(pointerToMember != nullptr); } -void implicitCastToBoolInSingleExpressions() { +void implicitConversionToBoolInSingleExpressions() { int integer = 10; bool boolComingFromInt = integer; - // CHECK-MESSAGES: :[[@LINE-1]]:28: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:28: warning: implicit conversion 'int' -> bool // CHECK-FIXES: bool boolComingFromInt = integer != 0; float floating = 10.0f; bool boolComingFromFloat = floating; - // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: implicit conversion 'float' -> bool // CHECK-FIXES: bool boolComingFromFloat = floating != 0.0f; signed char character = 'a'; bool boolComingFromChar = character; - // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: implicit cast 'signed char' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: implicit conversion 'signed char' -> bool // CHECK-FIXES: bool boolComingFromChar = character != 0; int* pointer = nullptr; bool boolComingFromPointer = pointer; - // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: implicit cast 'int *' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: implicit conversion 'int *' -> bool // CHECK-FIXES: bool boolComingFromPointer = pointer != nullptr; } -void implicitCastToBoolInComplexExpressions() { +void implicitConversionToBoolInComplexExpressions() { bool boolean = true; int integer = 10; int anotherInteger = 20; bool boolComingFromInteger = integer + anotherInteger; - // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: implicit conversion 'int' -> bool // CHECK-FIXES: bool boolComingFromInteger = (integer + anotherInteger) != 0; float floating = 0.2f; bool boolComingFromFloating = floating - 0.3f || boolean; - // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit conversion 'float' -> bool // CHECK-FIXES: bool boolComingFromFloating = ((floating - 0.3f) != 0.0f) || boolean; double doubleFloating = 0.3; bool boolComingFromDoubleFloating = (doubleFloating - 0.4) && boolean; - // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: implicit cast 'double' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: implicit conversion 'double' -> bool // CHECK-FIXES: bool boolComingFromDoubleFloating = ((doubleFloating - 0.4) != 0.0) && boolean; } -void implicitCastInNegationExpressions() { +void implicitConversionInNegationExpressions() { int integer = 10; bool boolComingFromNegatedInt = !integer; - // CHECK-MESSAGES: :[[@LINE-1]]:36: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:36: warning: implicit conversion 'int' -> bool // CHECK-FIXES: bool boolComingFromNegatedInt = integer == 0; float floating = 10.0f; bool boolComingFromNegatedFloat = ! floating; - // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: implicit conversion 'float' -> bool // CHECK-FIXES: bool boolComingFromNegatedFloat = floating == 0.0f; signed char character = 'a'; bool boolComingFromNegatedChar = (! character); - // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: implicit cast 'signed char' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: implicit conversion 'signed char' -> bool // CHECK-FIXES: bool boolComingFromNegatedChar = (character == 0); int* pointer = nullptr; bool boolComingFromNegatedPointer = not pointer; - // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: implicit cast 'int *' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: implicit conversion 'int *' -> bool // CHECK-FIXES: bool boolComingFromNegatedPointer = pointer == nullptr; } -void implicitCastToBoolInControlStatements() { +void implicitConversionToBoolInControlStatements() { int integer = 10; if (integer) {} - // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: implicit conversion 'int' -> bool // CHECK-FIXES: if (integer != 0) {} long int longInteger = 0.2f; for (;longInteger;) {} - // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: implicit cast 'long' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: implicit conversion 'long' -> bool // CHECK-FIXES: for (;longInteger != 0;) {} float floating = 0.3f; while (floating) {} - // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: implicit conversion 'float' -> bool // CHECK-FIXES: while (floating != 0.0f) {} double doubleFloating = 0.4; do {} while (doubleFloating); - // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: implicit cast 'double' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: implicit conversion 'double' -> bool // CHECK-FIXES: do {} while (doubleFloating != 0.0); } -bool implicitCastToBoolInReturnValue() { +bool implicitConversionToBoolInReturnValue() { float floating = 1.0f; return floating; - // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: implicit conversion 'float' -> bool // CHECK-FIXES: return floating != 0.0f; } -void implicitCastToBoolFromLiterals() { +void implicitConversionToBoolFromLiterals() { functionTaking<bool>(0); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool // CHECK-FIXES: functionTaking<bool>(false); functionTaking<bool>(1); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>(2ul); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'unsigned long' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'unsigned long' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>(0.0f); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'float' -> bool // CHECK-FIXES: functionTaking<bool>(false); functionTaking<bool>(1.0f); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'float' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>(2.0); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'double' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'double' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>('\0'); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'char' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'char' -> bool // CHECK-FIXES: functionTaking<bool>(false); functionTaking<bool>('a'); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'char' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'char' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>(""); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'const char *' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'const char *' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>("abc"); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'const char *' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'const char *' -> bool // CHECK-FIXES: functionTaking<bool>(true); functionTaking<bool>(NULL); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'long' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'long' -> bool // CHECK-FIXES: functionTaking<bool>(false); } -void implicitCastToBoolFromUnaryMinusAndZeroLiterals() { +void implicitConversionToBoolFromUnaryMinusAndZeroLiterals() { functionTaking<bool>(-0); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool // CHECK-FIXES: functionTaking<bool>((-0) != 0); functionTaking<bool>(-0.0f); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'float' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'float' -> bool // CHECK-FIXES: functionTaking<bool>((-0.0f) != 0.0f); functionTaking<bool>(-0.0); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'double' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'double' -> bool // CHECK-FIXES: functionTaking<bool>((-0.0) != 0.0); } -void implicitCastToBoolInWithOverloadedOperators() { +void implicitConversionToBoolInWithOverloadedOperators() { struct UserStruct { int operator()(int x) { return x; } int operator+(int y) { return y; } @@ -370,18 +370,18 @@ void implicitCastToBoolInWithOverloadedOperators() { UserStruct s; functionTaking<bool>(s(0)); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool // CHECK-FIXES: functionTaking<bool>(s(0) != 0); functionTaking<bool>(s + 2); - // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit cast 'int' -> bool + // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool // CHECK-FIXES: functionTaking<bool>((s + 2) != 0); } int functionReturningInt(); int* functionReturningPointer(); -void ignoreImplicitCastToBoolWhenDeclaringVariableInControlStatements() { +void ignoreImplicitConversionToBoolWhenDeclaringVariableInControlStatements() { if (int integer = functionReturningInt()) {} while (int* pointer = functionReturningPointer()) {} @@ -401,7 +401,7 @@ void ignoreExplicitCastsToBool() { bool booleanComingFromPointer = static_cast<bool>(pointer); } -void ignoreImplicitCastToBoolInMacroExpansions() { +void ignoreImplicitConversionToBoolInMacroExpansions() { int integer = 3; #define CAST_TO_BOOL_IN_MACRO_BODY integer && false @@ -411,7 +411,7 @@ void ignoreImplicitCastToBoolInMacroExpansions() { bool boolFromMacroArgument = CAST_TO_BOOL_IN_MACRO_ARGUMENT(integer); } -namespace ignoreImplicitCastToBoolInTemplateInstantiations { +namespace ignoreImplicitConversionToBoolInTemplateInstantiations { template<typename T> void templateFunction() { @@ -423,7 +423,7 @@ void useOfTemplateFunction() { templateFunction<int>(); } -} // namespace ignoreImplicitCastToBoolInTemplateInstantiations +} // namespace ignoreImplicitConversionToBoolInTemplateInstantiations namespace ignoreUserDefinedConversionOperator { |