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

     1  typedef struct
     2  {
     3    void *p;
     4  } Ptr;
     5  
     6  struct A
     7  {
     8    int i;
     9    union
    10    {
    11      Ptr p;
    12      char *q;
    13    } u;
    14  };
    15  
    16  extern Ptr get_stuff (void);
    17  extern void use_stuff (char *);
    18  
    19  static void foo(struct A p, char *q)
    20  {
    21    if (p.i)
    22      p.u.p = get_stuff ();
    23    else
    24      p.u.q = q;
    25  
    26    use_stuff (p.u.q);
    27  }
    28  
    29  void bar(struct A *p, char *q)
    30  {
    31    foo(*p, q);
    32  }