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