gcc.dg/compat/struct-layout-1_generate.c assumes sizeof(int) is 4. This of course fails on any target where sizeof(int) is 2. They may fail when sizeof(int) is 8 too, or at least they won't be testing the full range of possibilities.
I've noticed that quite a few testcases make these types of assumptions; they may or may not be xfailed for specific 16 bit targets. Do we have a standard way of telling the testsuite how big target types are, or some standard "this test assumes 32 bit int" dejagnu flag?