jhuber6 added a comment. For reference, here is what one of the newly generated headers looks like that is used.
#ifndef __LLVM_LIBC_DECLARATIONS_STDIO_H #define __LLVM_LIBC_DECLARATIONS_STDIO_H #ifndef __LIBC_ATTRS #define __LIBC_ATTRS #endif #ifdef __cplusplus extern "C" { #endif int puts(const char *__restrict) __LIBC_ATTRS; int fputs(const char *__restrict, FILE *__restrict) __LIBC_ATTRS; extern FILE * stdin __LIBC_ATTRS; extern FILE * stdout __LIBC_ATTRS; extern FILE * stderr __LIBC_ATTRS; #ifdef __cplusplus } #endif Unfortunately I have already run into a few problems with the re-declarations given the GNU `libc` headers. Here is the error message when including `string.h` now, /home/jhuber/Documents/llvm/clang/lib/clang/17/include/llvm_libc_wrappers/llvm-libc-decls/string.h:54:8: error: 'strstr' is missing exception specification 'noexcept(true)' 54 | char * strstr(const char *, const char *) __LIBC_ATTRS; | ^ /usr/include/string.h:343:1: note: previous declaration is here 343 | strstr (const char *__haystack, const char *__needle) __THROW | ^ 5 errors generated. This occurs for `memchr`, `strchr`, `strpbrk`, `strchr`, and `strstr`. If you define `__LIBC_ATTRS` to the `noexcept(true)` you get a different error, /home/jhuber/Documents/llvm/clang/lib/clang/17/include/llvm_libc_wrappers/llvm-libc-decls/string.h:54:8: error: functions that differ only in their return type cannot be overloaded 54 | char * strstr(const char *, const char *) __LIBC_ATTRS; | ~~~~~~ ^ /usr/include/string.h:343:1: note: previous definition is here 343 | __extern_always_inline const char * | ~~~~~~ 344 | strstr (const char *__haystack, const char *__needle) __THROW | ^ Looking at the definitions, they look like this in the GNU headers, extern char *strstr (char *__haystack, const char *__needle) __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2)); extern const char *strstr (const char *__haystack, const char *__needle) __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2)); Does anyone have any suggestions on working around this? The other supported headers work as far as I can tell. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154036/new/ https://reviews.llvm.org/D154036 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits