1 /* { dg-do compile } */ 2 /* { dg-options "-O -fdump-tree-fre1" } */ 3 4 struct S { char a[3]; char b[5]; } s = { "abc", "defg" }; 5 6 __SIZE_TYPE__ foo(struct S s,int a,int b)7foo (struct S s, int a, int b) 8 { 9 char *p = (char *) &s.a[0]; 10 if (a) 11 p = (char *) &s.a; 12 else if (b) 13 p = (char *) &s; 14 return __builtin_strlen (p); 15 } 16 17 __SIZE_TYPE__ bar(int a,int b)18bar (int a, int b) 19 { 20 char *p = (char *) &s.a[0]; 21 if (a) 22 p = (char *) &s.a; 23 else if (b) 24 p = (char *) &s; 25 return __builtin_strlen (p); 26 } 27 28 /* { dg-final { scan-tree-dump-times "strlen \\\(&s" 2 "fre1" } } */ 29