(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
builtin-object-size-14.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2" } */
       3  
       4  extern void abort (void);
       5  extern char *strncpy(char *, const char *, __SIZE_TYPE__);
       6  
       7  union u {
       8      struct {
       9  	char vi[8];
      10  	char pi[16];
      11      };
      12      char all[8+16+4];
      13  };
      14  
      15  void __attribute__((noinline,noclone))
      16  f(union u *u)
      17  {
      18    char vi[8+1];
      19    __builtin_strncpy(vi, u->vi, sizeof(u->vi));
      20    if (__builtin_object_size (u->all, 1) != -1)
      21      abort ();
      22  }
      23  int main()
      24  {
      25    union u u;
      26    f (&u);
      27    return 0;
      28  }