diff --git a/clang/lib/Headers/llvm_libc_wrappers/string.h b/clang/lib/Headers/llvm_libc_wrappers/string.h --- a/clang/lib/Headers/llvm_libc_wrappers/string.h +++ b/clang/lib/Headers/llvm_libc_wrappers/string.h @@ -13,22 +13,11 @@ #error "This file is for GPU offloading compilation only" #endif -// The GNU headers provide non C-standard headers when in C++ mode. Manually -// undefine it here so that the definitions agree with the C standard for our -// purposes. -#ifdef __cplusplus -extern "C" { -#pragma push_macro("__cplusplus") -#undef __cplusplus -#endif - +// FIXME: The GNU headers provide C++ standard compliant headers when in C++ +// mode and the LLVM libc does not. We cannot enable memchr, strchr, strchrnul, +// strpbrk, strrchr, strstr, or strcasestr until this is addressed. #include_next -#pragma pop_macro("__cplusplus") -#ifdef __cplusplus -} -#endif - #if __has_include() #if defined(__HIP__) || defined(__CUDA__) diff --git a/libc/config/gpu/entrypoints.txt b/libc/config/gpu/entrypoints.txt --- a/libc/config/gpu/entrypoints.txt +++ b/libc/config/gpu/entrypoints.txt @@ -21,7 +21,6 @@ libc.src.string.bcmp libc.src.string.bzero libc.src.string.memccpy - libc.src.string.memchr libc.src.string.memcmp libc.src.string.memcpy libc.src.string.memmem @@ -32,10 +31,7 @@ libc.src.string.stpcpy libc.src.string.stpncpy libc.src.string.strcasecmp - libc.src.string.strcasestr libc.src.string.strcat - libc.src.string.strchr - libc.src.string.strchrnul libc.src.string.strcmp libc.src.string.strcpy libc.src.string.strcspn @@ -47,10 +43,7 @@ libc.src.string.strncmp libc.src.string.strncpy libc.src.string.strnlen - libc.src.string.strpbrk - libc.src.string.strrchr libc.src.string.strspn - libc.src.string.strstr libc.src.string.strtok libc.src.string.strtok_r diff --git a/libc/docs/gpu/support.rst b/libc/docs/gpu/support.rst --- a/libc/docs/gpu/support.rst +++ b/libc/docs/gpu/support.rst @@ -47,7 +47,7 @@ bcmp |check| bzero |check| memccpy |check| -memchr |check| +memchr memcmp |check| memcpy |check| memmove |check| @@ -57,7 +57,7 @@ stpcpy |check| stpncpy |check| strcat |check| -strchr |check| +strchr strcmp |check| strcpy |check| strcspn |check| @@ -68,10 +68,10 @@ strncmp |check| strncpy |check| strnlen |check| -strpbrk |check| -strrchr |check| +strpbrk +strrchr strspn |check| -strstr |check| +strstr strtok |check| strtok_r |check| strdup