Deleted Added
full compact
cp-tree.h (52750) cp-tree.h (60967)
1/* Definitions for C++ parsing and type checking.
2 Copyright (C) 1987, 92-97, 1998, 1999 Free Software Foundation, Inc.
3 Hacked by Michael Tiemann (tiemann@cygnus.com)
4
5This file is part of GNU CC.
6
7GNU CC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by

--- 38 unchanged lines hidden (view full) ---

47 TYPE_VIRTUAL_P.
48 3: TYPE_USES_VIRTUAL_BASECLASSES (in a class TYPE).
49 BINFO_VTABLE_PATH_MARKED.
50 BINFO_PUSHDECLS_MARKED.
51 (TREE_REFERENCE_EXPR) (in NON_LVALUE_EXPR) (commented-out).
52 4: BINFO_NEW_VTABLE_MARKED.
53 TREE_HAS_CONSTRUCTOR (in INDIRECT_REF, SAVE_EXPR, CONSTRUCTOR,
54 or FIELD_DECL).
1/* Definitions for C++ parsing and type checking.
2 Copyright (C) 1987, 92-97, 1998, 1999 Free Software Foundation, Inc.
3 Hacked by Michael Tiemann (tiemann@cygnus.com)
4
5This file is part of GNU CC.
6
7GNU CC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by

--- 38 unchanged lines hidden (view full) ---

47 TYPE_VIRTUAL_P.
48 3: TYPE_USES_VIRTUAL_BASECLASSES (in a class TYPE).
49 BINFO_VTABLE_PATH_MARKED.
50 BINFO_PUSHDECLS_MARKED.
51 (TREE_REFERENCE_EXPR) (in NON_LVALUE_EXPR) (commented-out).
52 4: BINFO_NEW_VTABLE_MARKED.
53 TREE_HAS_CONSTRUCTOR (in INDIRECT_REF, SAVE_EXPR, CONSTRUCTOR,
54 or FIELD_DECL).
55 5: Not used.
55 5: TYPE_USES_PVBASES (in a class TYPE).
56 6: Not used.
57
58 Usage of TYPE_LANG_FLAG_?:
59 0: C_TYPE_FIELDS_READONLY (in RECORD_TYPE or UNION_TYPE).
60 1: TYPE_HAS_CONSTRUCTOR.
61 2: TYPE_HAS_DESTRUCTOR.
62 3: TYPE_FOR_JAVA.
63 4: TYPE_NEEDS_DESTRUCTOR.

--- 434 unchanged lines hidden (view full) ---

498 0 means write out virtual function tables and give them
499 (C) static access (default).
500 -1 means declare virtual function tables extern. */
501
502extern int write_virtuals;
503
504/* True for more efficient but incompatible (not fully tested)
505 vtable implementation (using thunks).
56 6: Not used.
57
58 Usage of TYPE_LANG_FLAG_?:
59 0: C_TYPE_FIELDS_READONLY (in RECORD_TYPE or UNION_TYPE).
60 1: TYPE_HAS_CONSTRUCTOR.
61 2: TYPE_HAS_DESTRUCTOR.
62 3: TYPE_FOR_JAVA.
63 4: TYPE_NEEDS_DESTRUCTOR.

--- 434 unchanged lines hidden (view full) ---

498 0 means write out virtual function tables and give them
499 (C) static access (default).
500 -1 means declare virtual function tables extern. */
501
502extern int write_virtuals;
503
504/* True for more efficient but incompatible (not fully tested)
505 vtable implementation (using thunks).
506 0 is old behavior; 1 is new behavior. */
507extern int flag_vtable_thunks;
506 0 is old behavior; 1 is new behavior; 3 adds vlist arguments;
507 2 is 3 plus backwards-compatibility to 1. */
508extern int flag_vtable_thunks, flag_vtable_thunks_compat;
508
509/* INTERFACE_ONLY nonzero means that we are in an "interface"
510 section of the compiler. INTERFACE_UNKNOWN nonzero means
511 we cannot trust the value of INTERFACE_ONLY. If INTERFACE_UNKNOWN
512 is zero and INTERFACE_ONLY is zero, it means that we are responsible
513 for exporting definitions that others might need. */
514extern int interface_only, interface_unknown;
515

--- 368 unchanged lines hidden (view full) ---

884 hierarchy, then we can use more efficient search techniques. */
885#define TYPE_USES_MULTIPLE_INHERITANCE(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.uses_multiple_inheritance)
886
887/* Nonzero means that this _CLASSTYPE (or one of its ancestors) uses
888 virtual base classes. If this is 0 for the root of a type
889 hierarchy, then we can use more efficient search techniques. */
890#define TYPE_USES_VIRTUAL_BASECLASSES(NODE) (TREE_LANG_FLAG_3(NODE))
891
509
510/* INTERFACE_ONLY nonzero means that we are in an "interface"
511 section of the compiler. INTERFACE_UNKNOWN nonzero means
512 we cannot trust the value of INTERFACE_ONLY. If INTERFACE_UNKNOWN
513 is zero and INTERFACE_ONLY is zero, it means that we are responsible
514 for exporting definitions that others might need. */
515extern int interface_only, interface_unknown;
516

--- 368 unchanged lines hidden (view full) ---

885 hierarchy, then we can use more efficient search techniques. */
886#define TYPE_USES_MULTIPLE_INHERITANCE(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.uses_multiple_inheritance)
887
888/* Nonzero means that this _CLASSTYPE (or one of its ancestors) uses
889 virtual base classes. If this is 0 for the root of a type
890 hierarchy, then we can use more efficient search techniques. */
891#define TYPE_USES_VIRTUAL_BASECLASSES(NODE) (TREE_LANG_FLAG_3(NODE))
892
893/* Nonzero means that this _CLASSTYPE uses polymorphic virtual bases.
894 This flag is set only when we use vtable thunks. */
895#define TYPE_USES_PVBASES(NODE) (TREE_LANG_FLAG_5(NODE))
896
892/* Vector member functions defined in this class. Each element is
893 either a FUNCTION_DECL, a TEMPLATE_DECL, or an OVERLOAD. All
894 functions with the same name end up in the same slot. The first
895 two elements are for constructors, and destructors, respectively.
896 These are followed by ordinary member functions. There may be
897 empty entries at the end of the vector. */
898#define CLASSTYPE_METHOD_VEC(NODE) (TYPE_LANG_SPECIFIC(NODE)->methods)
899

--- 60 unchanged lines hidden (view full) ---

960#define CLASSTYPE_VFIELD_PARENT(NODE) (TYPE_LANG_SPECIFIC(NODE)->vfield_parent)
961
962/* Remove when done merging. */
963#define CLASSTYPE_VFIELD(NODE) TYPE_VFIELD(NODE)
964
965/* The number of virtual functions defined for this
966 _CLASSTYPE node. */
967#define CLASSTYPE_VSIZE(NODE) (TYPE_LANG_SPECIFIC(NODE)->vsize)
897/* Vector member functions defined in this class. Each element is
898 either a FUNCTION_DECL, a TEMPLATE_DECL, or an OVERLOAD. All
899 functions with the same name end up in the same slot. The first
900 two elements are for constructors, and destructors, respectively.
901 These are followed by ordinary member functions. There may be
902 empty entries at the end of the vector. */
903#define CLASSTYPE_METHOD_VEC(NODE) (TYPE_LANG_SPECIFIC(NODE)->methods)
904

--- 60 unchanged lines hidden (view full) ---

965#define CLASSTYPE_VFIELD_PARENT(NODE) (TYPE_LANG_SPECIFIC(NODE)->vfield_parent)
966
967/* Remove when done merging. */
968#define CLASSTYPE_VFIELD(NODE) TYPE_VFIELD(NODE)
969
970/* The number of virtual functions defined for this
971 _CLASSTYPE node. */
972#define CLASSTYPE_VSIZE(NODE) (TYPE_LANG_SPECIFIC(NODE)->vsize)
968/* The virtual base classes that this type uses. */
973/* The list of binfos of virtual base classes that this type uses. */
969#define CLASSTYPE_VBASECLASSES(NODE) (TYPE_LANG_SPECIFIC(NODE)->vbases)
970/* The virtual function pointer fields that this type contains. */
971#define CLASSTYPE_VFIELDS(NODE) (TYPE_LANG_SPECIFIC(NODE)->vfields)
972
973/* Number of baseclasses defined for this type.
974 0 means no base classes. */
975#define CLASSTYPE_N_BASECLASSES(NODE) \
976 (TYPE_BINFO_BASETYPES (NODE) ? TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES(NODE)) : 0)

--- 183 unchanged lines hidden (view full) ---

1160#endif
1161
1162 unsigned operator_attr : 1;
1163 unsigned constructor_attr : 1;
1164 unsigned friend_attr : 1;
1165 unsigned static_function : 1;
1166 unsigned const_memfunc : 1;
1167 unsigned volatile_memfunc : 1;
974#define CLASSTYPE_VBASECLASSES(NODE) (TYPE_LANG_SPECIFIC(NODE)->vbases)
975/* The virtual function pointer fields that this type contains. */
976#define CLASSTYPE_VFIELDS(NODE) (TYPE_LANG_SPECIFIC(NODE)->vfields)
977
978/* Number of baseclasses defined for this type.
979 0 means no base classes. */
980#define CLASSTYPE_N_BASECLASSES(NODE) \
981 (TYPE_BINFO_BASETYPES (NODE) ? TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES(NODE)) : 0)

--- 183 unchanged lines hidden (view full) ---

1165#endif
1166
1167 unsigned operator_attr : 1;
1168 unsigned constructor_attr : 1;
1169 unsigned friend_attr : 1;
1170 unsigned static_function : 1;
1171 unsigned const_memfunc : 1;
1172 unsigned volatile_memfunc : 1;
1168
1169 unsigned abstract_virtual : 1;
1170 unsigned permanent_attr : 1 ;
1173 unsigned abstract_virtual : 1;
1174 unsigned permanent_attr : 1 ;
1171 unsigned constructor_for_vbase_attr : 1;
1175
1172 unsigned mutable_flag : 1;
1173 unsigned is_default_implementation : 1;
1174 unsigned saved_inline : 1;
1175 unsigned use_template : 2;
1176 unsigned mutable_flag : 1;
1177 unsigned is_default_implementation : 1;
1178 unsigned saved_inline : 1;
1179 unsigned use_template : 2;
1176
1177 unsigned nonconverting : 1;
1178 unsigned declared_inline : 1;
1179 unsigned not_really_extern : 1;
1180 unsigned needs_final_overrider : 1;
1181 unsigned bitfield : 1;
1182 unsigned defined_in_class : 1;
1180 unsigned nonconverting : 1;
1181 unsigned declared_inline : 1;
1182 unsigned not_really_extern : 1;
1183 unsigned needs_final_overrider : 1;
1184 unsigned bitfield : 1;
1185 unsigned defined_in_class : 1;
1183 unsigned dummy : 4;
1186 unsigned constructor_for_vbase_attr : 2;
1187 unsigned dummy : 3;
1184
1185 tree access;
1186 tree context;
1187 tree memfunc_pointer_to;
1188 tree template_info;
1189 struct binding_level *level;
1190};
1191

--- 29 unchanged lines hidden (view full) ---

1221 a destructor. */
1222#define DECL_DESTRUCTOR_P(NODE) \
1223 (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (NODE)) \
1224 && DECL_LANGUAGE (NODE) == lang_cplusplus)
1225
1226#define DECL_CONV_FN_P(NODE) \
1227 (IDENTIFIER_TYPENAME_P (DECL_NAME (NODE)) && TREE_TYPE (DECL_NAME (NODE)))
1228
1188
1189 tree access;
1190 tree context;
1191 tree memfunc_pointer_to;
1192 tree template_info;
1193 struct binding_level *level;
1194};
1195

--- 29 unchanged lines hidden (view full) ---

1225 a destructor. */
1226#define DECL_DESTRUCTOR_P(NODE) \
1227 (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (NODE)) \
1228 && DECL_LANGUAGE (NODE) == lang_cplusplus)
1229
1230#define DECL_CONV_FN_P(NODE) \
1231 (IDENTIFIER_TYPENAME_P (DECL_NAME (NODE)) && TREE_TYPE (DECL_NAME (NODE)))
1232
1229/* For FUNCTION_DECLs: nonzero means that this function is a constructor
1233#define CONSTRUCTOR_FOR_VBASE 1
1234#define CONSTRUCTOR_FOR_PVBASE 2
1235#define DESTRUCTOR_FOR_PVBASE 3
1236
1237/* For FUNCTION_DECLs: nonzero means that this function is a con/destructor
1230 for an object with virtual baseclasses. */
1238 for an object with virtual baseclasses. */
1231#define DECL_CONSTRUCTOR_FOR_VBASE_P(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.constructor_for_vbase_attr)
1239#define DECL_CONSTRUCTOR_FOR_VBASE(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.constructor_for_vbase_attr)
1232
1240
1241/* Nonzero means that this function is a constructor for an object
1242 with virtual baseclasses. */
1243#define DECL_CONSTRUCTOR_FOR_VBASE_P(NODE) \
1244 (DECL_CONSTRUCTOR_FOR_VBASE (NODE) == CONSTRUCTOR_FOR_VBASE)
1245
1246/* Nonzero means that this function is a constructor for an object
1247 with virtual baseclasses which have virtual functions. */
1248#define DECL_CONSTRUCTOR_FOR_PVBASE_P(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.constructor_for_vbase_attr == CONSTRUCTOR_FOR_PVBASE)
1249
1250/* Nonzero means that this function is a destructor for an object
1251 with virtual baseclasses which have virtual functions. */
1252#define DECL_DESTRUCTOR_FOR_PVBASE_P(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.constructor_for_vbase_attr == DESTRUCTOR_FOR_PVBASE)
1253
1254/* Nonzero means that this function is a wrapper around a PVBASE ctor. */
1255#define DECL_VLIST_CTOR_WRAPPER_P(NODE) \
1256 (DECL_CONSTRUCTOR_FOR_VBASE_P (NODE) && DECL_VLIST_CTOR_WRAPPED (NODE)\
1257 && TREE_CODE (DECL_VLIST_CTOR_WRAPPED (NODE)) == FUNCTION_DECL \
1258 && DECL_CONSTRUCTOR_FOR_PVBASE_P (DECL_VLIST_CTOR_WRAPPED (NODE)))
1259
1260/* Refers to original function that NODE wraps. */
1261#define DECL_VLIST_CTOR_WRAPPED(NODE) DECL_MEMFUNC_POINTER_TO (NODE)
1262
1233/* Non-zero for a FUNCTION_DECL that declares a type-info function. */
1234#define DECL_TINFO_FN_P(NODE) \
1235 (TREE_CODE (NODE) == FUNCTION_DECL \
1236 && DECL_ARTIFICIAL (NODE) \
1237 && DECL_LANG_SPECIFIC(NODE)->decl_flags.mutable_flag)
1238
1239/* Mark NODE as a type-info function. */
1240#define SET_DECL_TINFO_FN_P(NODE) \

--- 922 unchanged lines hidden (view full) ---

2163extern tree ctor_identifier, dtor_identifier;
2164extern tree pfn_identifier;
2165extern tree index_identifier;
2166extern tree delta_identifier;
2167extern tree delta2_identifier;
2168extern tree pfn_or_delta2_identifier;
2169extern tree tag_identifier;
2170extern tree vt_off_identifier;
1263/* Non-zero for a FUNCTION_DECL that declares a type-info function. */
1264#define DECL_TINFO_FN_P(NODE) \
1265 (TREE_CODE (NODE) == FUNCTION_DECL \
1266 && DECL_ARTIFICIAL (NODE) \
1267 && DECL_LANG_SPECIFIC(NODE)->decl_flags.mutable_flag)
1268
1269/* Mark NODE as a type-info function. */
1270#define SET_DECL_TINFO_FN_P(NODE) \

--- 922 unchanged lines hidden (view full) ---

2193extern tree ctor_identifier, dtor_identifier;
2194extern tree pfn_identifier;
2195extern tree index_identifier;
2196extern tree delta_identifier;
2197extern tree delta2_identifier;
2198extern tree pfn_or_delta2_identifier;
2199extern tree tag_identifier;
2200extern tree vt_off_identifier;
2201extern tree in_charge_identifier;
2171
2172/* A node that is a list (length 1) of error_mark_nodes. */
2173extern tree error_mark_list;
2174
2175extern tree ptr_type_node;
2176extern tree class_type_node, record_type_node, union_type_node, enum_type_node;
2177extern tree unknown_type_node;
2178extern tree opaque_type_node, signature_type_node;
2179
2202
2203/* A node that is a list (length 1) of error_mark_nodes. */
2204extern tree error_mark_list;
2205
2206extern tree ptr_type_node;
2207extern tree class_type_node, record_type_node, union_type_node, enum_type_node;
2208extern tree unknown_type_node;
2209extern tree opaque_type_node, signature_type_node;
2210
2211extern tree vlist_identifier, vlist_type_node, vlist_zero_node;
2212
2180/* Node for "pointer to (virtual) function".
2181 This may be distinct from ptr_type_node so gdb can distinguish them. */
2182#define vfunc_ptr_type_node \
2183 (flag_vtable_thunks ? vtable_entry_type : ptr_type_node)
2184
2185/* The type of a vtbl, i.e., an array of vtable entries. */
2186extern tree vtbl_type_node;
2187/* The type of a class vtbl pointer, i.e., a pointer to a vtable entry. */

--- 99 unchanged lines hidden (view full) ---

2287#define VPTR_NAME "$v"
2288#define THROW_NAME "$eh_throw"
2289#define DESTRUCTOR_DECL_PREFIX "_$_"
2290#define AUTO_VTABLE_NAME "__vtbl$me__"
2291#define AUTO_TEMP_NAME "_$tmp_"
2292#define AUTO_TEMP_FORMAT "_$tmp_%d"
2293#define VTABLE_BASE "$vb"
2294#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt$%s")
2213/* Node for "pointer to (virtual) function".
2214 This may be distinct from ptr_type_node so gdb can distinguish them. */
2215#define vfunc_ptr_type_node \
2216 (flag_vtable_thunks ? vtable_entry_type : ptr_type_node)
2217
2218/* The type of a vtbl, i.e., an array of vtable entries. */
2219extern tree vtbl_type_node;
2220/* The type of a class vtbl pointer, i.e., a pointer to a vtable entry. */

--- 99 unchanged lines hidden (view full) ---

2320#define VPTR_NAME "$v"
2321#define THROW_NAME "$eh_throw"
2322#define DESTRUCTOR_DECL_PREFIX "_$_"
2323#define AUTO_VTABLE_NAME "__vtbl$me__"
2324#define AUTO_TEMP_NAME "_$tmp_"
2325#define AUTO_TEMP_FORMAT "_$tmp_%d"
2326#define VTABLE_BASE "$vb"
2327#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt$%s")
2328#define VCTABLE_NAME "__vc$"
2329#define VLIST_NAME_FORMAT "__vl$%s"
2295#define VFIELD_BASE "$vf"
2296#define VFIELD_NAME "_vptr$"
2297#define VFIELD_NAME_FORMAT "_vptr$%s"
2298#define VBASE_NAME "_vb$"
2299#define VBASE_NAME_FORMAT "_vb$%s"
2300#define STATIC_NAME_FORMAT "_%s$%s"
2301#define ANON_AGGRNAME_FORMAT "$_%d"
2302

--- 6 unchanged lines hidden (view full) ---

2309#define VPTR_NAME ".v"
2310#define THROW_NAME ".eh_throw"
2311#define DESTRUCTOR_DECL_PREFIX "_._"
2312#define AUTO_VTABLE_NAME "__vtbl.me__"
2313#define AUTO_TEMP_NAME "_.tmp_"
2314#define AUTO_TEMP_FORMAT "_.tmp_%d"
2315#define VTABLE_BASE ".vb"
2316#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt.%s")
2330#define VFIELD_BASE "$vf"
2331#define VFIELD_NAME "_vptr$"
2332#define VFIELD_NAME_FORMAT "_vptr$%s"
2333#define VBASE_NAME "_vb$"
2334#define VBASE_NAME_FORMAT "_vb$%s"
2335#define STATIC_NAME_FORMAT "_%s$%s"
2336#define ANON_AGGRNAME_FORMAT "$_%d"
2337

--- 6 unchanged lines hidden (view full) ---

2344#define VPTR_NAME ".v"
2345#define THROW_NAME ".eh_throw"
2346#define DESTRUCTOR_DECL_PREFIX "_._"
2347#define AUTO_VTABLE_NAME "__vtbl.me__"
2348#define AUTO_TEMP_NAME "_.tmp_"
2349#define AUTO_TEMP_FORMAT "_.tmp_%d"
2350#define VTABLE_BASE ".vb"
2351#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt.%s")
2352#define VCTABLE_NAME "__vc."
2353#define VLIST_NAME_FORMAT "__vl.%s"
2317#define VFIELD_BASE ".vf"
2318#define VFIELD_NAME "_vptr."
2319#define VFIELD_NAME_FORMAT "_vptr.%s"
2320#define VBASE_NAME "_vb."
2321#define VBASE_NAME_FORMAT "_vb.%s"
2322#define STATIC_NAME_FORMAT "_%s.%s"
2323
2324#define ANON_AGGRNAME_FORMAT "._%d"

--- 16 unchanged lines hidden (view full) ---

2341 sizeof (AUTO_TEMP_NAME) - 1))
2342#define AUTO_TEMP_FORMAT "__tmp_%d"
2343#define VTABLE_BASE "__vtb"
2344#define VTABLE_NAME "__vt_"
2345#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt_%s")
2346#define VTABLE_NAME_P(ID_NODE) \
2347 (!strncmp (IDENTIFIER_POINTER (ID_NODE), VTABLE_NAME, \
2348 sizeof (VTABLE_NAME) - 1))
2354#define VFIELD_BASE ".vf"
2355#define VFIELD_NAME "_vptr."
2356#define VFIELD_NAME_FORMAT "_vptr.%s"
2357#define VBASE_NAME "_vb."
2358#define VBASE_NAME_FORMAT "_vb.%s"
2359#define STATIC_NAME_FORMAT "_%s.%s"
2360
2361#define ANON_AGGRNAME_FORMAT "._%d"

--- 16 unchanged lines hidden (view full) ---

2378 sizeof (AUTO_TEMP_NAME) - 1))
2379#define AUTO_TEMP_FORMAT "__tmp_%d"
2380#define VTABLE_BASE "__vtb"
2381#define VTABLE_NAME "__vt_"
2382#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt_%s")
2383#define VTABLE_NAME_P(ID_NODE) \
2384 (!strncmp (IDENTIFIER_POINTER (ID_NODE), VTABLE_NAME, \
2385 sizeof (VTABLE_NAME) - 1))
2386#define VCTABLE_NAME "__vc_"
2387#define VLIST_NAME_FORMAT "__vl_%s"
2349#define VFIELD_BASE "__vfb"
2350#define VFIELD_NAME "__vptr_"
2351#define VFIELD_NAME_P(ID_NODE) \
2352 (!strncmp (IDENTIFIER_POINTER (ID_NODE), VFIELD_NAME, \
2353 sizeof (VFIELD_NAME) - 1))
2354#define VFIELD_NAME_FORMAT "_vptr_%s"
2355#define VBASE_NAME "__vb_"
2356#define VBASE_NAME_P(ID_NODE) \

--- 17 unchanged lines hidden (view full) ---

2374
2375#define THIS_NAME "this"
2376#define DESTRUCTOR_NAME_FORMAT "~%s"
2377#define FILE_FUNCTION_PREFIX_LEN 9
2378#define CTOR_NAME "__ct"
2379#define DTOR_NAME "__dt"
2380
2381#define IN_CHARGE_NAME "__in_chrg"
2388#define VFIELD_BASE "__vfb"
2389#define VFIELD_NAME "__vptr_"
2390#define VFIELD_NAME_P(ID_NODE) \
2391 (!strncmp (IDENTIFIER_POINTER (ID_NODE), VFIELD_NAME, \
2392 sizeof (VFIELD_NAME) - 1))
2393#define VFIELD_NAME_FORMAT "_vptr_%s"
2394#define VBASE_NAME "__vb_"
2395#define VBASE_NAME_P(ID_NODE) \

--- 17 unchanged lines hidden (view full) ---

2413
2414#define THIS_NAME "this"
2415#define DESTRUCTOR_NAME_FORMAT "~%s"
2416#define FILE_FUNCTION_PREFIX_LEN 9
2417#define CTOR_NAME "__ct"
2418#define DTOR_NAME "__dt"
2419
2420#define IN_CHARGE_NAME "__in_chrg"
2421#define VLIST_NAME "__vlist"
2422#define VLIST1_NAME "__vlist1"
2423#define VLIST_TYPE_NAME "6_Vlist"
2382
2383#define VTBL_PTR_TYPE "__vtbl_ptr_type"
2384#define VTABLE_DELTA_NAME "__delta"
2385#define VTABLE_INDEX_NAME "__index"
2386#define VTABLE_PFN_NAME "__pfn"
2387#define VTABLE_DELTA2_NAME "__delta2"
2388
2389#define SIGNATURE_FIELD_NAME "__s_"

--- 161 unchanged lines hidden (view full) ---

2551 LOOKUP_COMPLAIN mean complain if no suitable member function
2552 matching the arguments is found.
2553 LOOKUP_NORMAL is just a combination of these two.
2554 LOOKUP_NONVIRTUAL means make a direct call to the member function found
2555 LOOKUP_GLOBAL means search through the space of overloaded functions,
2556 as well as the space of member functions.
2557 LOOKUP_HAS_IN_CHARGE means that the "in charge" variable is already
2558 in the parameter list.
2424
2425#define VTBL_PTR_TYPE "__vtbl_ptr_type"
2426#define VTABLE_DELTA_NAME "__delta"
2427#define VTABLE_INDEX_NAME "__index"
2428#define VTABLE_PFN_NAME "__pfn"
2429#define VTABLE_DELTA2_NAME "__delta2"
2430
2431#define SIGNATURE_FIELD_NAME "__s_"

--- 161 unchanged lines hidden (view full) ---

2593 LOOKUP_COMPLAIN mean complain if no suitable member function
2594 matching the arguments is found.
2595 LOOKUP_NORMAL is just a combination of these two.
2596 LOOKUP_NONVIRTUAL means make a direct call to the member function found
2597 LOOKUP_GLOBAL means search through the space of overloaded functions,
2598 as well as the space of member functions.
2599 LOOKUP_HAS_IN_CHARGE means that the "in charge" variable is already
2600 in the parameter list.
2601 LOOKUP_HAS_VLIST means that the "vlist" variable is already in
2602 the parameter list.
2559 LOOKUP_ONLYCONVERTING means that non-conversion constructors are not tried.
2560 DIRECT_BIND means that if a temporary is created, it should be created so
2561 that it lives as long as the current variable bindings; otherwise it
2562 only lives until the end of the complete-expression.
2563 LOOKUP_SPECULATIVELY means return NULL_TREE if we cannot find what we are
2564 after. Note, LOOKUP_COMPLAIN is checked and error messages printed
2565 before LOOKUP_SPECULATIVELY is checked.
2566 LOOKUP_NO_CONVERSION means that user-defined conversions are not

--- 22 unchanged lines hidden (view full) ---

2589#define DIRECT_BIND (256)
2590#define LOOKUP_NO_CONVERSION (512)
2591#define LOOKUP_DESTRUCTOR (512)
2592#define LOOKUP_NO_TEMP_BIND (1024)
2593#define LOOKUP_PREFER_TYPES (2048)
2594#define LOOKUP_PREFER_NAMESPACES (4096)
2595#define LOOKUP_PREFER_BOTH (6144)
2596#define LOOKUP_TEMPLATES_EXPECTED (8192)
2603 LOOKUP_ONLYCONVERTING means that non-conversion constructors are not tried.
2604 DIRECT_BIND means that if a temporary is created, it should be created so
2605 that it lives as long as the current variable bindings; otherwise it
2606 only lives until the end of the complete-expression.
2607 LOOKUP_SPECULATIVELY means return NULL_TREE if we cannot find what we are
2608 after. Note, LOOKUP_COMPLAIN is checked and error messages printed
2609 before LOOKUP_SPECULATIVELY is checked.
2610 LOOKUP_NO_CONVERSION means that user-defined conversions are not

--- 22 unchanged lines hidden (view full) ---

2633#define DIRECT_BIND (256)
2634#define LOOKUP_NO_CONVERSION (512)
2635#define LOOKUP_DESTRUCTOR (512)
2636#define LOOKUP_NO_TEMP_BIND (1024)
2637#define LOOKUP_PREFER_TYPES (2048)
2638#define LOOKUP_PREFER_NAMESPACES (4096)
2639#define LOOKUP_PREFER_BOTH (6144)
2640#define LOOKUP_TEMPLATES_EXPECTED (8192)
2641#define LOOKUP_HAS_VLIST (16384)
2597
2598#define LOOKUP_NAMESPACES_ONLY(f) \
2599 (((f) & LOOKUP_PREFER_NAMESPACES) && !((f) & LOOKUP_PREFER_TYPES))
2600#define LOOKUP_TYPES_ONLY(f) \
2601 (!((f) & LOOKUP_PREFER_NAMESPACES) && ((f) & LOOKUP_PREFER_TYPES))
2602#define LOOKUP_QUALIFIERS_ONLY(f) ((f) & LOOKUP_PREFER_BOTH)
2603
2604

--- 441 unchanged lines hidden (view full) ---

3046extern tree decl_constant_value PROTO((tree));
3047extern tree build_new PROTO((tree, tree, tree, int));
3048extern tree build_new_1 PROTO((tree));
3049extern tree expand_vec_init PROTO((tree, tree, tree, tree, int));
3050extern tree build_x_delete PROTO((tree, int, tree));
3051extern tree build_delete PROTO((tree, tree, tree, int, int));
3052extern tree build_vbase_delete PROTO((tree, tree));
3053extern tree build_vec_delete PROTO((tree, tree, tree, tree, int));
2642
2643#define LOOKUP_NAMESPACES_ONLY(f) \
2644 (((f) & LOOKUP_PREFER_NAMESPACES) && !((f) & LOOKUP_PREFER_TYPES))
2645#define LOOKUP_TYPES_ONLY(f) \
2646 (!((f) & LOOKUP_PREFER_NAMESPACES) && ((f) & LOOKUP_PREFER_TYPES))
2647#define LOOKUP_QUALIFIERS_ONLY(f) ((f) & LOOKUP_PREFER_BOTH)
2648
2649

--- 441 unchanged lines hidden (view full) ---

3091extern tree decl_constant_value PROTO((tree));
3092extern tree build_new PROTO((tree, tree, tree, int));
3093extern tree build_new_1 PROTO((tree));
3094extern tree expand_vec_init PROTO((tree, tree, tree, tree, int));
3095extern tree build_x_delete PROTO((tree, int, tree));
3096extern tree build_delete PROTO((tree, tree, tree, int, int));
3097extern tree build_vbase_delete PROTO((tree, tree));
3098extern tree build_vec_delete PROTO((tree, tree, tree, tree, int));
3099extern tree build_base_dtor_call PROTO((tree, tree, tree));
3100extern void init_vlist PROTO((tree));
3054
3055/* in input.c */
3056
3057/* in lex.c */
3058extern char *file_name_nondirectory PROTO((const char *));
3059extern tree make_pointer_declarator PROTO((tree, tree));
3060extern tree make_reference_declarator PROTO((tree, tree));
3061extern tree make_call_declarator PROTO((tree, tree, tree, tree));

--- 50 unchanged lines hidden (view full) ---

3112extern char *build_overload_name PROTO((tree, int, int));
3113extern tree build_static_name PROTO((tree, tree));
3114extern tree build_decl_overload PROTO((tree, tree, int));
3115extern tree build_decl_overload_real PROTO((tree, tree, tree, tree,
3116 tree, int));
3117extern void set_mangled_name_for_decl PROTO((tree));
3118extern tree build_typename_overload PROTO((tree));
3119extern tree build_overload_with_type PROTO((tree, tree));
3101
3102/* in input.c */
3103
3104/* in lex.c */
3105extern char *file_name_nondirectory PROTO((const char *));
3106extern tree make_pointer_declarator PROTO((tree, tree));
3107extern tree make_reference_declarator PROTO((tree, tree));
3108extern tree make_call_declarator PROTO((tree, tree, tree, tree));

--- 50 unchanged lines hidden (view full) ---

3159extern char *build_overload_name PROTO((tree, int, int));
3160extern tree build_static_name PROTO((tree, tree));
3161extern tree build_decl_overload PROTO((tree, tree, int));
3162extern tree build_decl_overload_real PROTO((tree, tree, tree, tree,
3163 tree, int));
3164extern void set_mangled_name_for_decl PROTO((tree));
3165extern tree build_typename_overload PROTO((tree));
3166extern tree build_overload_with_type PROTO((tree, tree));
3120extern tree build_destructor_name PROTO((tree));
3167extern tree build_destructor_name PROTO((tree, int));
3121extern tree build_opfncall PROTO((enum tree_code, int, tree, tree, tree));
3122extern tree hack_identifier PROTO((tree, tree));
3123extern tree make_thunk PROTO((tree, int));
3124extern void emit_thunk PROTO((tree));
3125extern void synthesize_method PROTO((tree));
3126extern tree get_id_2 PROTO((char *, tree));
3168extern tree build_opfncall PROTO((enum tree_code, int, tree, tree, tree));
3169extern tree hack_identifier PROTO((tree, tree));
3170extern tree make_thunk PROTO((tree, int));
3171extern void emit_thunk PROTO((tree));
3172extern void synthesize_method PROTO((tree));
3173extern tree get_id_2 PROTO((char *, tree));
3174extern tree get_vlist_vtable_id PROTO((tree, tree));
3127
3175
3176
3128/* in pt.c */
3129extern void check_template_shadow PROTO ((tree));
3130extern tree innermost_args PROTO ((tree));
3131extern tree tsubst PROTO ((tree, tree, int, tree));
3132extern tree tsubst_expr PROTO ((tree, tree, int, tree));
3133extern tree tsubst_copy PROTO ((tree, tree, int, tree));
3134extern void maybe_begin_member_template_processing PROTO((tree));
3135extern void maybe_end_member_template_processing PROTO((void));

--- 59 unchanged lines hidden (view full) ---

3195extern void finish_repo PROTO((void));
3196
3197/* in rtti.c */
3198extern void init_rtti_processing PROTO((void));
3199extern tree get_tinfo_fn_dynamic PROTO((tree));
3200extern tree build_typeid PROTO((tree));
3201extern tree build_x_typeid PROTO((tree));
3202extern tree get_tinfo_fn PROTO((tree));
3177/* in pt.c */
3178extern void check_template_shadow PROTO ((tree));
3179extern tree innermost_args PROTO ((tree));
3180extern tree tsubst PROTO ((tree, tree, int, tree));
3181extern tree tsubst_expr PROTO ((tree, tree, int, tree));
3182extern tree tsubst_copy PROTO ((tree, tree, int, tree));
3183extern void maybe_begin_member_template_processing PROTO((tree));
3184extern void maybe_end_member_template_processing PROTO((void));

--- 59 unchanged lines hidden (view full) ---

3244extern void finish_repo PROTO((void));
3245
3246/* in rtti.c */
3247extern void init_rtti_processing PROTO((void));
3248extern tree get_tinfo_fn_dynamic PROTO((tree));
3249extern tree build_typeid PROTO((tree));
3250extern tree build_x_typeid PROTO((tree));
3251extern tree get_tinfo_fn PROTO((tree));
3252extern tree get_tinfo_fn_unused PROTO((tree));
3203extern tree get_typeid PROTO((tree));
3204extern tree get_typeid_1 PROTO((tree));
3205extern tree build_dynamic_cast PROTO((tree, tree));
3206extern void synthesize_tinfo_fn PROTO((tree));
3207
3208/* in search.c */
3209extern int types_overlap_p PROTO((tree, tree));
3210extern tree get_vbase PROTO((tree, tree));

--- 314 unchanged lines hidden ---
3253extern tree get_typeid PROTO((tree));
3254extern tree get_typeid_1 PROTO((tree));
3255extern tree build_dynamic_cast PROTO((tree, tree));
3256extern void synthesize_tinfo_fn PROTO((tree));
3257
3258/* in search.c */
3259extern int types_overlap_p PROTO((tree, tree));
3260extern tree get_vbase PROTO((tree, tree));

--- 314 unchanged lines hidden ---