So, as further fallout from my -Weverything experiments, I've come
across this...

Ia32 and X64 ProcessorBind.h (BaseTools and MdePkg) both define CHAR8 as 'char'.
ARM and AArch64 both do the same.

However, default 'char' signedness is unsigned in the ARM
architectures, and signed in the others.

Meanwhile, the UEFI specification describes CHAR8 as
---
1-byte character. Unless otherwise specified, all 1-byte or ASCII characters and
strings are stored in 8-bit ASCII encoding format, using the
ISO-Latin-1 character
set.
---

Now, ISO-Latin-1 holds values all the way up to 255, which clearly
does not fit into a signed 8-bit char.

Would I be correct in my interpretation that Ia32/X64 should be
defining CHAR8 as 'unsigned char', or am I losing my mind?

/
    Leif
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to