1  /*
       2  where from: base = matching base; head = other header
       3  what kind:  ordy = ordinary struct; tmpl = template struct
       4  definition: decl = incomplete declaration; defn = full definition
       5  how used:   not = not used; ref = by ref; ptr = through pointer;
       6              fld = as field; var = as variable
       7  from where: base = from base; head = other header
       8  */
       9  
      10  struct gstruct_head_ordy_decl_not;
      11  struct gstruct_head_ordy_defn_not { int field_head_ordy_defn_not; };
      12  
      13  struct gstruct_head_ordy_decl_ref_head;
      14  struct gstruct_head_ordy_defn_ref_head { int field_head_ordy_defn_ref_head; };
      15  struct gstruct_head_ordy_defn_ptr_head { int field_head_ordy_defn_ptr_head; };
      16  struct gstruct_head_ordy_defn_fld_head { int field_head_ordy_defn_fld_head; };
      17  struct gstruct_head_ordy_defn_var_head {
      18      gstruct_head_ordy_decl_ref_head *field_head_ordy_defn_var_head_inc;
      19      gstruct_head_ordy_defn_ref_head *field_head_ordy_defn_var_head_ref;
      20      gstruct_head_ordy_defn_ptr_head *field_head_ordy_defn_var_head_ptr;
      21      gstruct_head_ordy_defn_fld_head  field_head_ordy_defn_var_head_fld;
      22  };
      23  extern struct gstruct_head_ordy_defn_var_head head_var1;
      24  
      25  struct gstruct_head_ordy_decl_ref_base;
      26  struct gstruct_head_ordy_defn_ref_base { int field_head_ordy_defn_ref_base; };
      27  struct gstruct_head_ordy_defn_ptr_base { int field_head_ordy_defn_ptr_base; };
      28  struct gstruct_head_ordy_defn_fld_base { int field_head_ordy_defn_fld_base; };
      29  struct gstruct_head_ordy_defn_var_base { int field_head_ordy_defn_var_base; };
      30  
      31  template< typename T > struct gstruct_head_tmpl_decl_not;
      32  template< typename T > struct gstruct_head_tmpl_defn_not
      33  { T field_head_tmpl_defn_not; };
      34  
      35  template< typename T > struct gstruct_head_tmpl_decl_ref_head;
      36  template< typename T > struct gstruct_head_tmpl_defn_ref_head
      37  { T field_head_tmpl_defn_ref_head; };
      38  template< typename T > struct gstruct_head_tmpl_defn_ptr_head
      39  { T field_head_tmpl_defn_ptr_head; };
      40  template< typename T > struct gstruct_head_tmpl_defn_fld_head
      41  { T field_head_tmpl_defn_fld_head; };
      42  template< typename T > struct gstruct_head_tmpl_defn_var_head {
      43      gstruct_head_tmpl_decl_ref_head< T > *field_head_tmpl_defn_var_head_inc;
      44      gstruct_head_tmpl_defn_ref_head< T > *field_head_tmpl_defn_var_head_ref;
      45      gstruct_head_tmpl_defn_ptr_head< T > *field_head_tmpl_defn_var_head_ptr;
      46      gstruct_head_tmpl_defn_fld_head< T >  field_head_tmpl_defn_var_head_fld;
      47  };
      48  extern gstruct_head_tmpl_defn_var_head< int > head_var5;
      49  
      50  template< typename T > struct gstruct_head_tmpl_decl_ref_base;
      51  template< typename T > struct gstruct_head_tmpl_defn_ref_base
      52  { T field_head_tmpl_defn_ref_base; };
      53  template< typename T > struct gstruct_head_tmpl_defn_ptr_base
      54  { T field_head_tmpl_defn_ptr_base; };
      55  template< typename T > struct gstruct_head_tmpl_defn_fld_base
      56  { T field_head_tmpl_defn_fld_base; };
      57  template< typename T > struct gstruct_head_tmpl_defn_var_base
      58  { T field_head_tmpl_defn_var_base; };
      59  
      60  inline int head_function() {
      61      return 0
      62  + head_var1.field_head_ordy_defn_var_head_ptr->field_head_ordy_defn_ptr_head
      63  + head_var1.field_head_ordy_defn_var_head_fld.field_head_ordy_defn_fld_head
      64  + head_var5.field_head_tmpl_defn_var_head_ptr->field_head_tmpl_defn_ptr_head
      65  + head_var5.field_head_tmpl_defn_var_head_fld.field_head_tmpl_defn_fld_head
      66  ;
      67  }