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

     1  extern void abort (void);
     2  extern void exit (int);
     3  
     4  union iso_directory_record {
     5     char carr[4];
     6     struct {
     7             unsigned char name_len [1];
     8             char name [0];
     9     } u;
    10  } entry;
    11  
    12  void set(union iso_directory_record *);
    13  
    14  int main (void)
    15  {
    16     union iso_directory_record *de;
    17  
    18     de = &entry;
    19     set(de);
    20  
    21     if (de->u.name_len[0] == 1 && de->u.name[0] == 0)
    22       exit (0);
    23     else
    24       abort ();
    25  }
    26  
    27  void set (union iso_directory_record *p)
    28  {
    29     p->carr[0] = 1;
    30     p->carr[1] = 0;
    31     return;
    32  }