Merged with mainline at revision 126347.
[official-gcc.git] / gcc / testsuite / g++.dg / other / fesd.h
blob83bb15a17bdb1a8cf05a79681c2a8f07009237d3
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 */
10 struct gstruct_head_ordy_decl_not;
11 struct gstruct_head_ordy_defn_not { int field_head_ordy_defn_not; };
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;
23 extern struct gstruct_head_ordy_defn_var_head head_var1;
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; };
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; };
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;
48 extern gstruct_head_tmpl_defn_var_head< int > head_var5;
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; };
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