http://gcc.gnu.org/r243854
Applied this patch as obvious. It adds some additional salt for targets with reduced resources like require size32plus. Johann gcc/testsuite/ PR testsuite/52641 * gcc.dg/builtin-object-size-16.c (ia0, ia1, ia9): Handle case where neither short nor int has a size of 4; use long. * gcc.dg/builtin-object-size-17.c: Same. * gcc.dg/builtin-stringop-chk-1.c (test2) <struct S>: Use int32_t for components as 4 components are supposed to occupy 16 bytes. * gcc.dg/pr78408-1.c: Require target size32plus. * gcc.dg/pr78408-2.c: Same. * gcc.dg/tree-ssa/pr78428.c. Require target int32plus. * gcc.dg/tree-ssa/tailcall-7.c: Require target trampolines.
Index: gcc.dg/builtin-object-size-16.c =================================================================== --- gcc.dg/builtin-object-size-16.c (revision 243852) +++ gcc.dg/builtin-object-size-16.c (working copy) @@ -69,6 +69,10 @@ static short ia9[9]; extern int ia0[0]; static int ia1[1]; static int ia9[9]; +#elif __SIZEOF_LONG__ == 4 +extern long ia0[0]; +static long ia1[1]; +static long ia9[9]; #endif static char a2x2[2][2]; Index: gcc.dg/builtin-object-size-17.c =================================================================== --- gcc.dg/builtin-object-size-17.c (revision 243852) +++ gcc.dg/builtin-object-size-17.c (working copy) @@ -64,6 +64,10 @@ static short ia9[9]; extern int ia0[0]; static int ia1[1]; static int ia9[9]; +#elif __SIZEOF_LONG__ == 4 +extern long ia0[0]; +static long ia1[1]; +static long ia9[9]; #endif static char a2x2[2][2]; Index: gcc.dg/builtin-stringop-chk-1.c =================================================================== --- gcc.dg/builtin-stringop-chk-1.c (revision 243852) +++ gcc.dg/builtin-stringop-chk-1.c (working copy) @@ -105,7 +105,7 @@ test2 (const H h) unsigned char buf[21]; memset (buf + 16, 0, 8); /* { dg-warning "writing 8 " "memset" } */ - typedef struct { int i, j, k, l; } S; + typedef struct { __INT32_TYPE__ i, j, k, l; } S; S *s[3]; memset (s, 0, sizeof (S) * 3); /* { dg-warning "writing 48 " "memset" } */ Index: gcc.dg/pr78408-1.c =================================================================== --- gcc.dg/pr78408-1.c (revision 243852) +++ gcc.dg/pr78408-1.c (working copy) @@ -1,5 +1,5 @@ /* PR c/78408 */ -/* { dg-do compile } */ +/* { dg-do compile { target size32plus } } */ /* { dg-options "-O2 -fdump-tree-fab1-details" } */ /* { dg-final { scan-tree-dump-times "after previous" 17 "fab1" } } */ Index: gcc.dg/pr78408-2.c =================================================================== --- gcc.dg/pr78408-2.c (revision 243852) +++ gcc.dg/pr78408-2.c (working copy) @@ -1,5 +1,5 @@ /* PR c/78408 */ -/* { dg-do compile } */ +/* { dg-do compile { target size32plus } } */ /* { dg-options "-O2 -fdump-tree-fab1-details" } */ /* { dg-final { scan-tree-dump-not "after previous" "fab1" } } */ Index: gcc.dg/tree-ssa/pr78428.c =================================================================== --- gcc.dg/tree-ssa/pr78428.c (revision 243852) +++ gcc.dg/tree-ssa/pr78428.c (working copy) @@ -1,6 +1,6 @@ /* PR tree-optimization/78428. */ /* { dg-options "-O2" } */ -/* { dg-do run } */ +/* { dg-do run { target int32plus } } */ struct S0 { Index: gcc.dg/tree-ssa/tailcall-7.c =================================================================== --- gcc.dg/tree-ssa/tailcall-7.c (revision 243852) +++ gcc.dg/tree-ssa/tailcall-7.c (working copy) @@ -1,4 +1,4 @@ -/* { dg-do compile } */ +/* { dg-do compile { target trampolines } } */ /* { dg-options "-O2 -fdump-tree-tailc-details" } */ struct s { int x; };