On 5/12/24 1:30 PM, Paul Eggert wrote: > I sense a bit of confusion here. Although POSIX allows <endian.h> symbols > like be16toh to be macros, I don't see where it allows be16toh(X) to evaluate > X more than once, so an expression like be16toh(i++) has well-defined > behavior even though it has a side effect.
Ah, okay that makes sense thanks. I didn't realize that it would be written explicitly I guess. I started working on the module a bit using the POSIX specification. When writing the test module I noticed that glibc doesn't define uint16_t, uint32_t, and uint64_t in endian.h. Does glibc take bug reports for that or is it waiting for the specification to be official (i.e. not a draft)? I should probably request a bugzilla account anyways so I can report bugs... Collin