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

source code of clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-missing-comma.cpp