https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79216
--- Comment #3 from H. Peter Anvin <hpa at zytor dot com> ---
It does indeed, I don't know why I missed it. The only thing that I really see
as a problem with it is that it doesn't allow the assignment of endianness to
scalar pointers, e.g.:
uint32_t __attribute__((scalar_storage_order("big-endian"))) *blah;
blah = &foo.bar; /* bigendian field in a structure */
The other thing that seems problematic to me (but this is a
quality-of-implementation issue, not a syntactic problem) is that it seems that
the endianness restrictions only apply on opposite-endian architectures. This
makes programmer errors more likely.