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 [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
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 [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
memcpy_s.cpp [UCRT] Fix build of memcpy_s.cpp 2025-01-22 18:56:08 +02:00
memicmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strcat.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strcat_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strcmp.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strcoll.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strcpy_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strcspn.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strdup.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
stricmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
stricoll.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
string.cmake [UCRT] Fix GCC/Clang SIMD compilation 2025-07-29 09:22:15 +03:00
strlwr.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncat.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncat_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncmp.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncnt.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncoll.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncpy.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strncpy_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strnicmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strnicol.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
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 [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strnset_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strpbrk.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strrev.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strset.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strset_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strspn.c [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strtok.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strtok_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strupr.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
strxfrm.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscat.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscat_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscoll.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscpy.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscpy_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcscspn.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsdup.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsicmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsicoll.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcslwr.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncat.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncat_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncnt.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncoll.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncpy.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsncpy_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsnicmp.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsnicol.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsnset.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsnset_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcspbrk.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsrev.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsset.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsset_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsspn.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcstok.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcstok_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsupr.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wcsxfrm.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wmemcpy_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00
wmemmove_s.cpp [UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3 2025-01-16 14:18:53 +02:00