From 157f894d5d362b231653ce71bff327d74b13dec5 Mon Sep 17 00:00:00 2001 From: Ozkan Sezer 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 71fcea5e4c..1854698b60 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) */