?=?: function
    with parameters
      pointer to char 
      char 
    returning 
      char 

?=?: function
    with parameters
      pointer to signed int 
      signed int 
    returning 
      signed int 

?=?: function
    with parameters
      pointer to float 
      float 
    returning 
      float 

?=?: forall
      DT: incomplete type
    function
    with parameters
      pointer to pointer to instance of type DT (not function type) 
      pointer to instance of type DT (not function type) 
    returning 
      pointer to instance of type DT (not function type) 

*?: forall
      T: type
        with assertions
          ?=?: function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 


    function
    with parameters
      pointer to instance of type T (not function type) 
    returning 
      lvalue instance of type T (not function type) 

__builtin_memcpy: function
      accepting unspecified arguments
    returning 
      pointer to char 

a: function
    with parameters
      char 
    returning 
      void 

b: function
    with parameters
      signed int 
    returning 
      void 

c: function
    with parameters
      pointer to signed int 
    returning 
      void 

d: function
    with parameters
      pointer to float 
    returning 
      void 

struct a_struct
    with members
      a: signed int 
      a: char 
      a: float 

union b_struct
    with members
      a: pointer to signed int 
      a: pointer to char 
      a: pointer to float 

f: function
      accepting unspecified arguments
    returning 
      void 
    with body 
      CompoundStmt
        Declaration of the_struct: instance of struct a_struct 
        Declaration of the_struct: instance of union b_struct 
                  Expression Statement:
            Applying untyped: 
                Name: a
            ...to: 
                Member Expression, with field: a                from aggregate:                   Name: the_struct

                  Expression Statement:
            Applying untyped: 
                Name: b
            ...to: 
                Member Expression, with field: a                from aggregate:                   Name: the_struct

                  Expression Statement:
            Applying untyped: 
                Name: c
            ...to: 
                Member Expression, with field: a                from aggregate:                   Name: the_struct

                  Expression Statement:
            Applying untyped: 
                Name: d
            ...to: 
                Member Expression, with field: a                from aggregate:                   Name: the_struct


struct c_struct
    with members
      signed int 
      char 
      float 

union d_struct
    with members
      pointer to signed int 
      pointer to char 
      pointer to float 

g: function
      accepting unspecified arguments
    returning 
      void 
    with body 
      CompoundStmt
        Declaration of x: short unsigned int 
        Declaration of x: instance of struct c_struct 
        Declaration of x: instance of union d_struct 
                  Expression Statement:
            Applying untyped: 
                Name: a
            ...to: 
                Name: x

                  Expression Statement:
            Applying untyped: 
                Name: b
            ...to: 
                Name: x

                  Expression Statement:
            Applying untyped: 
                Name: c
            ...to: 
                Name: x

                  Expression Statement:
            Applying untyped: 
                Name: d
            ...to: 
                Name: x


struct forward
q: pointer to instance of struct forward 
struct forward
    with members
      y: signed int 

h: function
      accepting unspecified arguments
    returning 
      void 
    with body 
      CompoundStmt
                  Expression Statement:
            Member Expression, with field: y            from aggregate:               Applying untyped: 
                  Name: *?
              ...to: 
                  Name: q


