style(string): satisfy clang-tidy and clang-format for final-wave gate
Suppress clang-analyzer-security buffer-handling diagnostics on the plan-mandated __builtin_memcpy word loads and bugprone swappable- parameter diagnostics on the C-standard signatures; wrap the autoconf substitution tokens in clang-format off/on (the space clang-format wants before the closing @ would break config.status substitution). Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <[email protected]>
This commit is contained in:
+4
-5
@@ -16,9 +16,8 @@
|
||||
* self-recursion and stack overflow. Disable that one transformation for
|
||||
* this function only.
|
||||
*/
|
||||
__attribute__((optimize("no-tree-loop-distribute-patterns")))
|
||||
void *
|
||||
memcpy(void *restrict dst, const void *restrict src, size_t n)
|
||||
__attribute__((optimize("no-tree-loop-distribute-patterns"))) void *
|
||||
memcpy(void *restrict dst, const void *restrict src, size_t n) // NOLINT(bugprone-*)
|
||||
{
|
||||
const unsigned long word = sizeof(unsigned long);
|
||||
unsigned char *d = dst;
|
||||
@@ -35,8 +34,8 @@ memcpy(void *restrict dst, const void *restrict src, size_t n)
|
||||
{
|
||||
unsigned long w;
|
||||
|
||||
__builtin_memcpy(&w, s, sizeof w);
|
||||
__builtin_memcpy(d, &w, sizeof w);
|
||||
__builtin_memcpy(&w, s, sizeof w); // NOLINT(clang-analyzer-security.insecureAPI.*)
|
||||
__builtin_memcpy(d, &w, sizeof w); // NOLINT(clang-analyzer-security.insecureAPI.*)
|
||||
d += word;
|
||||
s += word;
|
||||
n -= word;
|
||||
|
||||
Reference in New Issue
Block a user