diff options
-rw-r--r-- | clang-tools-extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.rst | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/clang-tools-extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.rst b/clang-tools-extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.rst index e46566a3491..5f67f08e454 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.rst @@ -7,14 +7,19 @@ String literals placed side-by-side are concatenated at translation phase 6 (after the preprocessor). This feature is used to represent long string literal on multiple lines. -For instance, these declarations are equivalent: +For instance, the following declarations are equivalent: + +.. code:: c++ + const char* A[] = "This is a test"; - const char* B[] = "This" " is a " - "test"; + const char* B[] = "This" " is a " "test"; + A common mistake done by programmers is to forget a comma between two string literals in an array initializer list. +.. code:: c++ + const char* Test[] = { "line 1", "line 2" // Missing comma! @@ -23,13 +28,17 @@ literals in an array initializer list. "line 5" }; + The array contains the string "line 2line3" at offset 1 (i.e. Test[1]). Clang won't generate warnings at compile time. This checker may warn incorrectly on cases like: +.. code:: c++ + const char* SupportedFormat[] = { "Error %s", "Code " PRIu64, // May warn here. "Warning %s", }; + |