reactos/sdk/lib/ucrt/string
Timo Kreuzer 719ea022ec [UCRT] Fix GCC/Clang SIMD compilation
GCC and Clang need to mark functions that use SSE/AVX etc, either with a function attribute or a pragma around the function. strlen uses a template function that either uses SSE2 or AVX2. Previously the template was surrounded with pragmas to allow both SSE2 and AVX2, but that makes GCC assume that it can use AVX2 instructions even in the SSE2 version. To fix this the template instances are now build in individual compilation units for SSE2 and AVX, separate from the "dispatcher" function.
Now ucrtbase doesn't crash anymore on GCC build.

Another issue was the namespace around strnlen_mode, which has confused clang so much, that it forgot to instantiate the template code.
2025-07-29 09:22:15 +03:00
..
amd64 [UCRT][ASM] Make asm code GCC compatible 2025-01-22 18:56:08 +02:00
arm
arm64 [UCRT][ASM] Rename all .asm files to .s 2025-01-22 18:56:08 +02:00
i386 [UCRT][ASM] Make asm code GCC compatible 2025-01-22 18:56:08 +02:00
memccpy.c
memcpy_s.cpp [UCRT] Fix build of memcpy_s.cpp 2025-01-22 18:56:08 +02:00
memicmp.cpp
strcat.c
strcat_s.cpp
strcmp.c
strcoll.cpp
strcpy_s.cpp
strcspn.c
strdup.cpp
stricmp.cpp
stricoll.cpp
string.cmake [UCRT] Fix GCC/Clang SIMD compilation 2025-07-29 09:22:15 +03:00
strlwr.cpp
strncat.c
strncat_s.cpp
strncmp.c
strncnt.cpp
strncoll.cpp
strncpy.c
strncpy_s.cpp
strnicmp.cpp
strnicol.cpp
strnlen-avx2.cpp [UCRT] Fix GCC/Clang SIMD compilation 2025-07-29 09:22:15 +03:00
strnlen-sse2.cpp [UCRT] Fix GCC/Clang SIMD compilation 2025-07-29 09:22:15 +03:00
strnlen.cpp [UCRT] Fix GCC/Clang SIMD compilation 2025-07-29 09:22:15 +03:00
strnset.c
strnset_s.cpp
strpbrk.c
strrev.c
strset.c
strset_s.cpp
strspn.c
strtok.cpp
strtok_s.cpp
strupr.cpp
strxfrm.cpp
wcscat.cpp
wcscat_s.cpp
wcscmp.cpp
wcscoll.cpp
wcscpy.cpp
wcscpy_s.cpp
wcscspn.cpp
wcsdup.cpp
wcsicmp.cpp
wcsicoll.cpp
wcslwr.cpp
wcsncat.cpp
wcsncat_s.cpp
wcsncmp.cpp
wcsncnt.cpp
wcsncoll.cpp
wcsncpy.cpp
wcsncpy_s.cpp
wcsnicmp.cpp
wcsnicol.cpp
wcsnset.cpp
wcsnset_s.cpp
wcspbrk.cpp
wcsrev.cpp
wcsset.cpp
wcsset_s.cpp
wcsspn.cpp
wcstok.cpp
wcstok_s.cpp
wcsupr.cpp
wcsxfrm.cpp
wmemcpy_s.cpp
wmemmove_s.cpp