Signed-off-by: Peter Damianov <[email protected]>
---
 mingw-w64-crt/Makefile.am         |  1 +
 mingw-w64-crt/misc/memalignment.c | 12 ++++++++++++
 mingw-w64-headers/crt/stdlib.h    |  4 ++++
 3 files changed, 17 insertions(+)
 create mode 100644 mingw-w64-crt/misc/memalignment.c

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index ba5280b59..20f61bf75 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -1156,6 +1156,7 @@ src_libmingwex=\
   misc/mingw_setfp.c \
   misc/feupdateenv.c                                misc/fwide.c            
misc/getlogin.c              misc/getopt.c          \
   misc/gettimeofday.c    misc/__mingw_has_sse.c      \
+  misc/memalignment.c \
   misc/mempcpy.c         misc/mingw-aligned-malloc.c \
   misc/mingw_matherr.c   misc/mingw_mbwc_convert.c  misc/mingw_usleep.c     
misc/mingw_wcstod.c          misc/mingw_wcstof.c    \
   misc/mingw_wcstold.c \
diff --git a/mingw-w64-crt/misc/memalignment.c 
b/mingw-w64-crt/misc/memalignment.c
new file mode 100644
index 000000000..6656cf61f
--- /dev/null
+++ b/mingw-w64-crt/misc/memalignment.c
@@ -0,0 +1,12 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#include <stdlib.h>
+
+size_t memalignment(const void *p)
+{
+    return (size_t)p & -(size_t)p;
+}
diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
index 2a4359352..217c53571 100644
--- a/mingw-w64-headers/crt/stdlib.h
+++ b/mingw-w64-headers/crt/stdlib.h
@@ -463,6 +463,10 @@ float __cdecl __MINGW_NOTHROW strtof(const char * 
__restrict__ _Str,char ** __re
   _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t 
_Count,size_t _Size,size_t _Alignment,size_t _Offset);
   _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t 
_Offset);
 
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
+  size_t __cdecl memalignment(const void *_Memory);
+#endif
+
 #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
 #pragma pop_macro("calloc")
 #pragma pop_macro("free")
-- 
2.47.3



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to