From 157f894d5d362b231653ce71bff327d74b13dec5 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Sun, 4 May 2025 20:01:24 +0300
Subject: [PATCH] don't prototype strdup() for __clang_analyzer__ case in
windows builds.
Fixes: https://github.com/libsdl-org/SDL/issues/12948.
(cherry picked from commit 17bba029ba6717c3da460a2426fd81fd2772f66f)
---
include/SDL_stdinc.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h
index 71fcea5e4cf4e..1854698b60635 100644
--- a/include/SDL_stdinc.h
+++ b/include/SDL_stdinc.h
@@ -750,8 +750,12 @@ size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size);
size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size);
#endif
+#ifndef _WIN32
/* strdup is not ANSI but POSIX, and its prototype might be hidden... */
+/* not for windows: might conflict with string.h where strdup may have
+ * dllimport attribute: https://github.com/libsdl-org/SDL/issues/12948 */
char *strdup(const char *str);
+#endif
/* Starting LLVM 16, the analyser errors out if these functions do not have
their prototype defined (clang-diagnostic-implicit-function-declaration) */