1 /* PR tree-optimization/93249 */
2 
3 char a[2], b[4], c[6];
4 
5 void
foo(void)6 foo (void)
7 {
8   char d[2] = { 0x00, 0x11 };
9   __builtin_strncpy (&b[2], d, 2);
10   __builtin_strncpy (&b[1], a, 2);
11   if (b[0] || b[1] || b[2] || b[3])
12     __builtin_abort ();
13 }
14 
15 void
bar(void)16 bar (void)
17 {
18   __builtin_strncpy (&b[2], "\0\x11", 2);
19   __builtin_strncpy (&b[1], a, 2);
20   if (b[0] || b[1] || b[2] || b[3])
21     __builtin_abort ();
22 }
23 
24 void
baz(void)25 baz (void)
26 {
27   __builtin_strncpy (&c[2], "\x11\x11\0\x11", 4);
28   __builtin_strncpy (&c[1], a, 2);
29   if (c[0] || c[1] || c[2] || c[3] != 0x11 || c[4] || c[5])
30     __builtin_abort ();
31 }
32 
33 int
main()34 main ()
35 {
36   foo ();
37   bar ();
38   baz ();
39   return 0;
40 }
41