[PATCH] include: Add declarations of _alloca and alloca for MSVC mode

Martin Storsjö martin at martin.st
Mon Apr 25 03:46:39 CDT 2022


This fixes builds with recent Clang 15 (which still is in development),
which errors out on implicit declarations.

Signed-off-by: Martin Storsjö <martin at martin.st>
---
Doing this as two separate ifdef blocks, to get the plain C
function declaration (which actually is a builtin intrinsic, but
it needs to be declared) within the extern "C" scope.
---
 include/msvcrt/malloc.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/include/msvcrt/malloc.h b/include/msvcrt/malloc.h
index 5bb843be5a6..fcbadbeb4e0 100644
--- a/include/msvcrt/malloc.h
+++ b/include/msvcrt/malloc.h
@@ -77,6 +77,10 @@ _ACRTIMP void*  __cdecl _aligned_offset_realloc(void*,size_t,size_t,size_t);
 _ACRTIMP size_t __cdecl _get_sbh_threshold(void);
 _ACRTIMP int    __cdecl _set_sbh_threshold(size_t size);
 
+#ifdef _MSC_VER
+void *_alloca(size_t size);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
@@ -84,6 +88,8 @@ _ACRTIMP int    __cdecl _set_sbh_threshold(size_t size);
 # ifdef __GNUC__
 # define _alloca(x) __builtin_alloca((x))
 # define alloca(x) __builtin_alloca((x))
+# elif defined(_MSC_VER)
+# define alloca(x) _alloca((x))
 # endif
 
 #endif /* __WINE_MALLOC_H */
-- 
2.25.1




More information about the wine-devel mailing list