1 // RUN: %check_clang_tidy %s readability-identifier-naming %t -- \ 2 // RUN: -config='{CheckOptions: [ \ 3 // RUN: {key: readability-identifier-naming.ParameterCase, value: CamelCase}, \ 4 // RUN: {key: readability-identifier-naming.IgnoreMainLikeFunctions, value: true} \ 5 // RUN: ]}' 6 7 int mainLike(int argc, char **argv); 8 int mainLike(int argc, char **argv, const char **env); 9 int mainLike(int argc, const char **argv); 10 int mainLike(int argc, const char **argv, const char **env); 11 int mainLike(int argc, char *argv[]); 12 int mainLike(int argc, const char *argv[]); 13 int mainLike(int argc, char *argv[], char *env[]); 14 int mainLike(int argc, const char *argv[], const char *env[]); 15 void notMain(int argc, char **argv); 16 // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: invalid case style for parameter 'argc' 17 // CHECK-MESSAGES: :[[@LINE-2]]:31: warning: invalid case style for parameter 'argv' 18 void notMain(int argc, char **argv, char **env); 19 // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: invalid case style for parameter 'argc' 20 // CHECK-MESSAGES: :[[@LINE-2]]:31: warning: invalid case style for parameter 'argv' 21 // CHECK-MESSAGES: :[[@LINE-3]]:44: warning: invalid case style for parameter 'env' 22 int notMain(int argc, char **argv, char **env, int Extra); 23 // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: invalid case style for parameter 'argc' 24 // CHECK-MESSAGES: :[[@LINE-2]]:30: warning: invalid case style for parameter 'argv' 25 // CHECK-MESSAGES: :[[@LINE-3]]:43: warning: invalid case style for parameter 'env' 26 int notMain(int argc, char **argv, int Extra); 27 // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: invalid case style for parameter 'argc' 28 // CHECK-MESSAGES: :[[@LINE-2]]:30: warning: invalid case style for parameter 'argv' 29 int notMain(int argc, char *argv); 30 // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: invalid case style for parameter 'argc' 31 // CHECK-MESSAGES: :[[@LINE-2]]:29: warning: invalid case style for parameter 'argv' 32 int notMain(unsigned argc, char **argv); 33 // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: invalid case style for parameter 'argc' 34 // CHECK-MESSAGES: :[[@LINE-2]]:35: warning: invalid case style for parameter 'argv' 35 int notMain(long argc, char *argv); 36 // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: invalid case style for parameter 'argc' 37 // CHECK-MESSAGES: :[[@LINE-2]]:30: warning: invalid case style for parameter 'argv' 38 int notMain(int argc, char16_t **argv); 39 // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: invalid case style for parameter 'argc' 40 // CHECK-MESSAGES: :[[@LINE-2]]:34: warning: invalid case style for parameter 'argv' 41 int notMain(int argc, char argv[]); 42 // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: invalid case style for parameter 'argc' 43 // CHECK-MESSAGES: :[[@LINE-2]]:28: warning: invalid case style for parameter 'argv' 44 typedef char myFunChar; 45 typedef int myFunInt; 46 typedef char **myFunCharPtr; 47 typedef long myFunLong; 48 myFunInt mainLikeTypedef(myFunInt argc, myFunChar **argv); 49 int mainLikeTypedef(int argc, myFunCharPtr argv); 50 int notMainTypedef(myFunLong argc, char **argv); 51 // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: invalid case style for parameter 'argc' 52 // CHECK-MESSAGES: :[[@LINE-2]]:43: warning: invalid case style for parameter 'argv' 53 54 // Don't flag as name contains the word main 55 int myMainFunction(int argc, char *argv[]); 56 57 // This is fine, named with wmain and has wchar ptr. 58 int wmainLike(int argc, wchar_t *argv[]); 59 60 // Flag this as has signature of main, but named as wmain. 61 int wmainLike(int argc, char *argv[]); 62 // CHECK-MESSAGES: :[[@LINE-1]]:19: warning: invalid case style for parameter 'argc' 63 // CHECK-MESSAGES: :[[@LINE-2]]:31: warning: invalid case style for parameter 'argv' 64 65 struct Foo { FooFoo66 Foo(int argc, char *argv[]) {} 67 // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: invalid case style for parameter 'argc' 68 // CHECK-MESSAGES: :[[@LINE-2]]:23: warning: invalid case style for parameter 'argv' 69 70 int mainPub(int argc, char *argv[]); 71 static int mainPubStatic(int argc, char *argv[]); 72 73 protected: 74 int mainProt(int argc, char *argv[]); 75 // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: invalid case style for parameter 'argc' 76 // CHECK-MESSAGES: :[[@LINE-2]]:32: warning: invalid case style for parameter 'argv' 77 static int mainProtStatic(int argc, char *argv[]); 78 // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: invalid case style for parameter 'argc' 79 // CHECK-MESSAGES: :[[@LINE-2]]:45: warning: invalid case style for parameter 'argv' 80 81 private: 82 int mainPriv(int argc, char *argv[]); 83 // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: invalid case style for parameter 'argc' 84 // CHECK-MESSAGES: :[[@LINE-2]]:32: warning: invalid case style for parameter 'argv' 85 static int mainPrivStatic(int argc, char *argv[]); 86 // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: invalid case style for parameter 'argc' 87 // CHECK-MESSAGES: :[[@LINE-2]]:45: warning: invalid case style for parameter 'argv' 88 }; 89