Are gcc and clang designed to produce the same memory layout for a given struct definition?
Obviously the precise memory layout of structs isn't mandated by the C standard, but gcc and clang might still produce the same memory layout for other reasons. Maybe clang was explicitly designed to do so to be compatible with gcc. Maybe there's some other standard that both follow, similar to the situation with name-mangling and the Itanium ABI.