-
Notifications
You must be signed in to change notification settings - Fork 14.6k
Closed as not planned
Labels
embeddedSupport for embedded developmentSupport for embedded developmentlibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.wontfixIssue is real, but we can't or won't fix it. Not invalidIssue is real, but we can't or won't fix it. Not invalid
Description
libc++ assumes that EOF
is always available and uses it unconditionally in the char_traits.h
implementation.
In file included from /llvm_libcxx/include/chrono:830:
In file included from /llvm_libcxx/include/__chrono/convert_to_tm.h:22:
In file included from /llvm_libcxx/include/__chrono/statically_widen.h:17:
In file included from /llvm_libcxx/include/__format/concepts.h:17:
In file included from /llvm_libcxx/include/__format/format_parse_context.h:16:
In file included from /llvm_libcxx/include/string_view:225:
/llvm_libcxx/include/__string/char_traits.h:169:100: error: use of undeclared identifier 'EOF'
169 | static inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR int_type eof() _NOEXCEPT { return int_type(EOF); }
| ^
/llvm_libcxx/include/__string/char_traits.h:169:66: error: no return statement in constexpr function
169 | static inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR int_type eof() _NOEXCEPT { return int_type(EOF); }
LLVM libc doesn't currently define EOF
on baremetal targets because there's no filesystem support (since baremetal targets typically don't have filesystem to begin with) which results in a compiler error.
We could extend LLVM libc to define EOF
even on baremetal targets, but it's an open question whether libc++ should be able to handle the case where EOF
is undefined.
This is related to issue #84879.
Metadata
Metadata
Assignees
Labels
embeddedSupport for embedded developmentSupport for embedded developmentlibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.wontfixIssue is real, but we can't or won't fix it. Not invalidIssue is real, but we can't or won't fix it. Not invalid