2 /* { dg-options "-O2 -fdump-tree-strlen" } */
4 char s
[100] = {'a','b','c','d'};
5 typedef struct { char s
[8]; int x
; } S
;
7 __attribute__ ((noinline
)) int
10 return __builtin_strcmp (s
->s
, "abc") != 0;
13 __attribute__ ((noinline
)) int
16 return __builtin_strcmp (s
, "abc") != 0;
19 __attribute__ ((noinline
)) int
22 return __builtin_strcmp ("abc", s
->s
) != 0;
25 __attribute__ ((noinline
)) int
28 return __builtin_strcmp ("abc", s
) != 0;
31 __attribute__ ((noinline
)) int
34 return __builtin_strncmp (s
->s
, "abc", 3) != 0;
37 __attribute__ ((noinline
)) int
40 return __builtin_strncmp (s
, "abc", 2) != 0;
43 __attribute__ ((noinline
)) int
46 return __builtin_strncmp ("abc", s
->s
, 3) != 0;
49 __attribute__ ((noinline
)) int
52 return __builtin_strncmp ("abc", s
, 2) != 0;
57 S ss
= {{'a','b','c'}, 2};
59 if (f1 (&ss
) != 0 || f2 () != 1 || f3 (&ss
) != 0 ||
60 f4 () != 1 || f5 (&ss
) != 0 || f6 () != 0 ||
61 f7 (&ss
) != 0 || f8 () != 0)
67 /* { dg-final { scan-tree-dump-times "cmp_eq \\(" 8 "strlen" } } */