I'll answer one more time, but first I get my popcorn
Octocontrabass wrote:
Where are your examples of "hundreds" of people who have seen GCC or Clang default to 4-byte wchar_t when targeting the Windows ABI?
I though you said UEFI was designed for any C compiler and not just for Microsoft ABI only MSVC...
We got into a little contradiction, aren't we?
But to answer to your question,
not targeting Windows ABI, but compiling ELF shared object and converting to PE as last step. I guess you have never ever used GNU-EFI in your entire life, otherwise you'd know. Maybe you should read about the
required knowledge?
Octocontrabass wrote:
bzt wrote:
First, it does not say that (where's that clause 4 they're referencing?).
Yes it does. But you can find similar text in older versions of the standard as well, if C11 is too new for you. (Clause 4 is the section titled "Conformance" starting on page 8.)
Ok, I ask again, this time slowly so that you can understand
Where does that spec list the names of functions which are minimally required? On page 8 or on any other page? (It just lists C headers, string.h not among them, yet memset is a builtin and a required minimal function in all compilers for example). Maybe you should read about the
required knowledge?
Octocontrabass wrote:
I'm not asking for someone else's issues, I'm asking for your issues. Please, explain to me how built-in functions do not work the way the GCC and Clang documentation says they should.
Use the source Luke! Clang has builtin_strlen for example, any many other string functions, see tests
here, neither accepts wchar_t as argument, and there's no builtin for wclen or mbstowcs for example. Maybe you should read about the
required knowledge?
Octocontrabass wrote:
If the compiler is complaining, it's either a bug in your code or a bug in the compiler. Don't you want to fix the bug?
Neither. It is perfectly normal if the compiler complains about "strcmp(wchar_t *s1, wchar_t *s1);", and
it's not a bug. And I'll try to write slowly so you can comprehend: I don't care, since I've implemented UTF-8 wrapper
Cheers,
bzt