1  /* PR tree-optimization/93249 */
       2  
       3  char a[2], b[4], c[6];
       4  
       5  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
      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
      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
      34  main ()
      35  {
      36    foo ();
      37    bar ();
      38    baz ();
      39    return 0;
      40  }