modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr84339.c (about)

     1  /* PR tree-optimization/84339 */
     2  
     3  struct S { int a; char b[1]; };
     4  
     5  __attribute__((noipa)) int
     6  foo (struct S *p)
     7  {
     8    return __builtin_strlen (&p->b[0]);
     9  }
    10  
    11  __attribute__((noipa)) int
    12  bar (struct S *p)
    13  {
    14    return __builtin_strlen (p->b);
    15  }
    16  
    17  int
    18  main ()
    19  {
    20    struct S *p = __builtin_malloc (sizeof (struct S) + 16);
    21    if (p)
    22      {
    23        p->a = 1;
    24        __builtin_strcpy (p->b, "abcdefg");
    25        if (foo (p) != 7 || bar (p) != 7)
    26  	__builtin_abort ();
    27        __builtin_free (p);
    28      }
    29    return 0;
    30  }