1*89a1d03eSRichard // RUN: %check_clang_tidy %s bugprone-suspicious-missing-comma %t 2*89a1d03eSRichard 3*89a1d03eSRichard const char* Cartoons[] = { 4*89a1d03eSRichard "Bugs Bunny", 5*89a1d03eSRichard "Homer Simpson", 6*89a1d03eSRichard "Mickey Mouse", 7*89a1d03eSRichard "Bart Simpson", 8*89a1d03eSRichard "Charlie Brown" // There is a missing comma here. 9*89a1d03eSRichard "Fred Flintstone", 10*89a1d03eSRichard "Popeye", 11*89a1d03eSRichard }; 12*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: suspicious string literal, probably missing a comma [bugprone-suspicious-missing-comma] 13*89a1d03eSRichard 14*89a1d03eSRichard const wchar_t* Colors[] = { 15*89a1d03eSRichard L"Red", L"Yellow", L"Blue", L"Green", L"Purple", L"Rose", L"White", L"Black" 16*89a1d03eSRichard }; 17*89a1d03eSRichard 18*89a1d03eSRichard // The following array should not trigger any warnings. There is more than 5 19*89a1d03eSRichard // elements, but they are all concatenated string literals. 20*89a1d03eSRichard const char* HttpCommands[] = { 21*89a1d03eSRichard "GET / HTTP/1.0\r\n" 22*89a1d03eSRichard "\r\n", 23*89a1d03eSRichard 24*89a1d03eSRichard "GET /index.html HTTP/1.0\r\n" 25*89a1d03eSRichard "\r\n", 26*89a1d03eSRichard 27*89a1d03eSRichard "GET /favicon.ico HTTP/1.0\r\n" 28*89a1d03eSRichard "header: dummy" 29*89a1d03eSRichard "\r\n", 30*89a1d03eSRichard 31*89a1d03eSRichard "GET /index.html-en HTTP/1.0\r\n" 32*89a1d03eSRichard "\r\n", 33*89a1d03eSRichard 34*89a1d03eSRichard "GET /index.html-fr HTTP/1.0\r\n" 35*89a1d03eSRichard "\r\n", 36*89a1d03eSRichard 37*89a1d03eSRichard "GET /index.html-es HTTP/1.0\r\n" 38*89a1d03eSRichard "\r\n", 39*89a1d03eSRichard }; 40*89a1d03eSRichard 41*89a1d03eSRichard // This array is too small to trigger a warning. 42*89a1d03eSRichard const char* SmallArray[] = { 43*89a1d03eSRichard "a" "b", "c" 44*89a1d03eSRichard }; 45*89a1d03eSRichard 46*89a1d03eSRichard // Parentheses should be enough to avoid warnings. 47*89a1d03eSRichard const char* ParentheseArray[] = { 48*89a1d03eSRichard ("a" "b"), "c", 49*89a1d03eSRichard ("d" 50*89a1d03eSRichard "e" 51*89a1d03eSRichard "f"), 52*89a1d03eSRichard "g", "h", "i", "j", "k", "l" 53*89a1d03eSRichard }; 54*89a1d03eSRichard 55*89a1d03eSRichard // Indentation should be enough to avoid warnings. 56*89a1d03eSRichard const char* CorrectlyIndentedArray[] = { 57*89a1d03eSRichard "This is a long message " 58*89a1d03eSRichard "which is spanning over multiple lines." 59*89a1d03eSRichard "And this should be fine.", 60*89a1d03eSRichard "a", "b", "c", "d", "e", "f", 61*89a1d03eSRichard "g", "h", "i", "j", "k", "l" 62*89a1d03eSRichard }; 63*89a1d03eSRichard 64*89a1d03eSRichard const char* IncorrectlyIndentedArray[] = { 65*89a1d03eSRichard "This is a long message " 66*89a1d03eSRichard "which is spanning over multiple lines." 67*89a1d03eSRichard "And this should be fine.", 68*89a1d03eSRichard "a", "b", "c", "d", "e", "f", 69*89a1d03eSRichard "g", "h", "i", "j", "k", "l" 70*89a1d03eSRichard }; 71*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-6]]:3: warning: suspicious string literal, probably missing a comma [bugprone-suspicious-missing-comma] 72*89a1d03eSRichard 73*89a1d03eSRichard const char* TooManyConcatenatedTokensArray[] = { 74*89a1d03eSRichard "Dummy line", 75*89a1d03eSRichard "Dummy line", 76*89a1d03eSRichard "a" "b" "c" "d" "e" "f", 77*89a1d03eSRichard "g" "h" "i" "j" "k" "l", 78*89a1d03eSRichard "Dummy line", 79*89a1d03eSRichard "Dummy line", 80*89a1d03eSRichard "Dummy line", 81*89a1d03eSRichard "Dummy line", 82*89a1d03eSRichard }; 83