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