brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 31a3677 Raw
130 lines · cpp
1// RUN: %check_clang_tidy -std=c++17 %s modernize-use-integer-sign-comparison %t -- \2// RUN: -config="{CheckOptions: {modernize-use-integer-sign-comparison.EnableQtSupport: true}}"3 4// CHECK-FIXES: #include <QtCore/q20utility.h>5 6// The code that triggers the check7#define MAX_MACRO(a, b) (a < b) ? b : a8 9unsigned int FuncParameters(int bla) {10    unsigned int result = 0;11    if (result == bla)12        return 0;13// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]14// CHECK-FIXES: if (q20::cmp_equal(result , bla))15 16    return 1;17}18 19template <typename T>20void TemplateFuncParameter(T val) {21    unsigned long uL = 0;22    if (val >= uL)23        return;24// CHECK-MESSAGES-NOT: warning:25}26 27template <typename T1, typename T2>28int TemplateFuncParameters(T1 val1, T2 val2) {29    if (val1 >= val2)30        return 0;31// CHECK-MESSAGES-NOT: warning:32    return 1;33}34 35int AllComparisons() {36    unsigned int uVar = 42;37    unsigned short uArray[7] = {0, 1, 2, 3, 9, 7, 9};38 39    int sVar = -42;40    short sArray[7] = {-1, -2, -8, -94, -5, -4, -6};41 42    enum INT_TEST {43      VAL1 = 0,44      VAL2 = -145    };46 47    char ch = 'a';48    unsigned char uCh = 'a';49    signed char sCh = 'a';50    bool bln = false;51 52    if (bln == sVar)53      return 0;54// CHECK-MESSAGES-NOT: warning:55 56    if (ch > uCh)57      return 0;58// CHECK-MESSAGES-NOT: warning:59 60    if (sVar <= INT_TEST::VAL2)61      return 0;62// CHECK-MESSAGES-NOT: warning:63 64    if (uCh < sCh)65      return -1;66// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]67// CHECK-FIXES: if (q20::cmp_less(uCh , sCh))68 69    if ((int)uVar < sVar)70        return 0;71// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]72// CHECK-FIXES: if (q20::cmp_less(uVar, sVar))73 74    (uVar != sVar) ? uVar = sVar75                   : sVar = uVar;76// CHECK-MESSAGES: :[[@LINE-2]]:6: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]77// CHECK-FIXES: (q20::cmp_not_equal(uVar , sVar)) ? uVar = sVar78 79    while (uArray[0] <= sArray[0])80        return 0;81// CHECK-MESSAGES: :[[@LINE-2]]:12: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]82// CHECK-FIXES: while (q20::cmp_less_equal(uArray[0] , sArray[0]))83 84    if (uArray[1] > sArray[1])85        return 0;86// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]87// CHECK-FIXES: if (q20::cmp_greater(uArray[1] , sArray[1]))88 89    MAX_MACRO(uVar, sArray[0]);90// CHECK-MESSAGES: :[[@LINE-1]]:15: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]91 92    if (static_cast<unsigned int>(uArray[2]) < static_cast<int>(sArray[2]))93        return 0;94// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]95// CHECK-FIXES: if (q20::cmp_less(uArray[2],sArray[2]))96 97    if ((unsigned int)uArray[3] < (int)sArray[3])98        return 0;99// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]100// CHECK-FIXES: if (q20::cmp_less(uArray[3],sArray[3]))101 102    if ((unsigned int)(uArray[4]) < (int)(sArray[4]))103        return 0;104// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]105// CHECK-FIXES: if (q20::cmp_less((uArray[4]),(sArray[4])))106 107    if (uArray[5] > sArray[5])108        return 0;109// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]110// CHECK-FIXES: if (q20::cmp_greater(uArray[5] , sArray[5]))111 112    #define VALUE sArray[6]113    if (uArray[6] > VALUE)114        return 0;115// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]116// CHECK-FIXES: if (q20::cmp_greater(uArray[6] , VALUE))117 118    if (unsigned(uArray[7]) >= int(sArray[7]))119        return 0;120// CHECK-MESSAGES: :[[@LINE-2]]:9: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]121// CHECK-FIXES: if (q20::cmp_greater_equal(uArray[7],sArray[7]))122 123 124    FuncParameters(uVar);125    TemplateFuncParameter(sVar);126    TemplateFuncParameters(uVar, sVar);127 128    return 0;129}130