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

     1  /* Make sure that we don't free any temp stack slots associated with
     2     initializing marker before we're finished with them.  */
     3  
     4  extern void abort();
     5  
     6  typedef struct { short v16; } __attribute__((packed)) jint16_t;
     7  
     8  struct node {
     9    jint16_t magic;
    10    jint16_t nodetype;
    11    int totlen;
    12  } __attribute__((packed));
    13  
    14  struct node node, *node_p = &node;
    15  
    16  int main()
    17  {
    18    struct node marker = {
    19      .magic = (jint16_t) {0x1985},
    20      .nodetype = (jint16_t) {0x2003},
    21      .totlen = node_p->totlen
    22    };
    23    if (marker.magic.v16 != 0x1985)
    24      abort();
    25    if (marker.nodetype.v16 != 0x2003)
    26      abort();
    27    return 0;
    28  }