1 /* { dg-do compile } */ 2 /* { dg-options "-O1 -fdump-tree-fab1" } */ 3 4 /* Check that we fold strlen of equally long strings, and that we do not 5 fail to terminate when there is a nontrivial cycle in the corresponding 6 ssa graph. */ 7 8 extern __SIZE_TYPE__ strlen (const char *); 9 extern void bar (__SIZE_TYPE__); 10 extern int bla (void); 11 foo(int i)12void foo(int i) 13 { 14 char *s = "abcde"; 15 16 if (i) 17 { 18 s = "defgh"; 19 goto middle; 20 } 21 22 start: 23 24 bla (); 25 26 middle: 27 28 if (bla ()) 29 goto start; 30 31 bar (strlen (s)); 32 } 33 34 /* There should be no calls to strlen. */ 35 /* { dg-final { scan-tree-dump-times "strlen" 0 "fab1"} } */ 36