1 /* Verify that SRA total scalarization works on records containing arrays. */ 2 /* { dg-do run } */ 3 /* { dg-options "-O1 -fdump-tree-release_ssa --param sra-max-scalarization-size-Ospeed=16" } */ 4 5 extern void abort (void); 6 7 struct S 8 { 9 long zilch[0]; 10 char c; 11 int i; 12 unsigned short f3, f4; 13 }; 14 15 16 int __attribute__ ((noinline)) foo(struct S * p)17foo (struct S *p) 18 { 19 struct S l; 20 21 l = *p; 22 l.i++; 23 l.f3++; 24 *p = l; 25 } 26 27 int main(int argc,char ** argv)28main (int argc, char **argv) 29 { 30 struct S a = { { }, 0, 4, 0, 0}; 31 foo (&a); 32 if (a.i != 5 || a.f3 != 1) 33 abort (); 34 return 0; 35 } 36 37 /* { dg-final { scan-tree-dump-times "l;" 0 "release_ssa" } } */ 38