[llvm-branch-commits] [clang-tools-extra] [clang-tidy][docs] Rewrite bugprone check docs to Markdown [4/4] (PR #214427)
Zeyi Xu via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Aug 11 04:54:40 PDT 2026
================
@@ -1,64 +1,63 @@
-.. title:: clang-tidy - bugprone-suspicious-string-compare
+```{title} clang-tidy - bugprone-suspicious-string-compare
+```
-bugprone-suspicious-string-compare
-==================================
+# bugprone-suspicious-string-compare
Find suspicious usage of runtime string comparison functions.
This check is valid in C and C++.
Checks for calls with implicit comparator and proposed to explicitly add it.
-.. code-block:: c++
+```c++
+if (strcmp(...)) // Implicitly compare to zero
+if (!strcmp(...)) // Won't warn
+if (strcmp(...) != 0) // Won't warn
+```
- if (strcmp(...)) // Implicitly compare to zero
- if (!strcmp(...)) // Won't warn
- if (strcmp(...) != 0) // Won't warn
-
-Checks that compare function results (i.e., ``strcmp``) are compared to valid
+Checks that compare function results (i.e., `strcmp`) are compared to valid
constant. The resulting value is
-.. code::
-
- < 0 when lower than,
- > 0 when greater than,
- == 0 when equals.
+```
+< 0 when lower than,
+> 0 when greater than,
+== 0 when equals.
+```
A common mistake is to compare the result to `1` or `-1`.
-.. code-block:: c++
-
- if (strcmp(...) == -1) // Incorrect usage of the returned value.
+```c++
+if (strcmp(...) == -1) // Incorrect usage of the returned value.
+```
Additionally, the check warns if the results value is implicitly cast to a
*suspicious* non-integer type. It's happening when the returned value is
used in a wrong context.
-.. code-block:: c++
-
- if (strcmp(...) < 0.) // Incorrect usage of the returned value.
-
-Options
--------
-
-.. option:: WarnOnImplicitComparison
-
- When `true`, the check will warn on implicit comparison. `true` by default.
-
-.. option:: WarnOnLogicalNotComparison
-
- When `true`, the check will warn on logical not comparison. `false` by default.
-
-.. option:: StringCompareLikeFunctions
-
- A string specifying the comma-separated names of the extra string comparison
- functions. Default is an empty string.
- The check will detect the following string comparison functions:
- `__builtin_memcmp`, `__builtin_strcasecmp`, `__builtin_strcmp`,
- `__builtin_strncasecmp`, `__builtin_strncmp`, `_mbscmp`, `_mbscmp_l`,
- `_mbsicmp`, `_mbsicmp_l`, `_mbsnbcmp`, `_mbsnbcmp_l`, `_mbsnbicmp`,
- `_mbsnbicmp_l`, `_mbsncmp`, `_mbsncmp_l`, `_mbsnicmp`, `_mbsnicmp_l`,
- `_memicmp`, `_memicmp_l`, `_stricmp`, `_stricmp_l`, `_strnicmp`,
- `_strnicmp_l`, `_wcsicmp`, `_wcsicmp_l`, `_wcsnicmp`, `_wcsnicmp_l`,
- `lstrcmp`, `lstrcmpi`, `memcmp`, `memicmp`, `strcasecmp`, `strcmp`,
- `strcmpi`, `stricmp`, `strncasecmp`, `strncmp`, `strnicmp`, `wcscasecmp`,
- `wcscmp`, `wcsicmp`, `wcsncmp`, `wcsnicmp`, `wmemcmp`.
+```c++
+if (strcmp(...) < 0.) // Incorrect usage of the returned value.
+```
+
+## Options
+
+```{option} WarnOnImplicitComparison
+When `true`, the check will warn on implicit comparison. `true` by default.
+```
+
+```{option} WarnOnLogicalNotComparison
+When `true`, the check will warn on logical not comparison. `false` by default.
+```
+
+```{option} StringCompareLikeFunctions
+A string specifying the comma-separated names of the extra string comparison
+functions. Default is an empty string.
+The check will detect the following string comparison functions:
----------------
zeyi2 wrote:
I think this is indeed misplaced. Fixed in the new commit, thanks for reviewing!
https://github.com/llvm/llvm-project/pull/214427
More information about the llvm-branch-commits
mailing list