osprey-gcc-4.2.0/gcc/cp/class.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
#include "cp-tree.h"
#include "flags.h"
#include "rtl.h"
#include "output.h"
#include "toplev.h"
#include "target.h"
#include "convert.h"
#include "cgraph.h"
#include "tree-dump.h"
#include "gt-cp-class.h"

Include dependency graph for class.c:

Go to the source code of this file.

Data Types

type  class_stack_node
type  vtbl_init_data_s
type  find_final_overrider_data_s
type  secondary_vptr_vtt_init_data_s

Typedefs

typedef struct class_stack_nodeclass_stack_node_t
typedef struct vtbl_init_data_s vtbl_init_data
typedef int(* subobject_offset_fn )(tree, tree, splay_tree)
typedef struct
find_final_overrider_data_s 
find_final_overrider_data
typedef struct
secondary_vptr_vtt_init_data_s 
secondary_vptr_vtt_init_data

Functions/Subroutines

static GTY (())
static tree build_simple_base_path (tree expr, tree binfo)
tree convert_to_base (tree object, tree type, bool check_access, bool nonnull)
tree convert_to_base_statically (tree expr, tree base)
tree build_vfield_ref (tree datum, tree type)
static tree build_vtbl_ref_1 (tree instance, tree idx)
tree build_vtbl_ref (tree instance, tree idx)
tree build_vfn_ref (tree instance_ptr, tree idx)
static tree get_vtable_name (tree type)
void set_linkage_according_to_type (tree type, tree decl)
static tree build_vtable (tree class_type, tree name, tree vtable_type)
tree get_vtable_decl (tree type, int complete)
static int build_primary_vtable (tree binfo, tree type)
static int build_secondary_vtable (tree binfo)
static int make_new_vtable (tree t, tree binfo)
static void modify_vtable_entry (tree t, tree binfo, tree fndecl, tree delta, tree *virtuals)
bool add_method (tree type, tree method, tree using_decl)
static int alter_access (tree t, tree fdecl, tree access)
static void handle_using_decl (tree using_decl, tree t)
static void check_bases (tree t, int *cant_have_const_ctor_p, int *no_const_asn_ref_p)
static void determine_primary_bases (tree t)
static void finish_struct_bits (tree t)
static void maybe_warn_about_overly_private_class (tree t)
static int method_name_cmp (const void *m1_p, const void *m2_p)
static int resort_method_name_cmp (const void *m1_p, const void *m2_p)
void resort_type_method_vec (void *obj, void *orig_obj ATTRIBUTE_UNUSED, gt_pointer_operator new_value, void *cookie)
static void finish_struct_methods (tree t)
static void layout_vtable_decl (tree binfo, int n)
int same_signature_p (tree fndecl, tree base_fndecl)
static bool base_derived_from (tree derived, tree base)
static bool dfs_find_final_overrider_1 (tree binfo, find_final_overrider_data *ffod, unsigned depth)
static tree dfs_find_final_overrider_pre (tree binfo, void *data)
static tree dfs_find_final_overrider_post (tree binfo ATTRIBUTE_UNUSED, void *data)
static tree find_final_overrider (tree derived, tree binfo, tree fn)
static tree get_vcall_index (tree fn, tree type)
static void update_vtable_entry_for_fn (tree t, tree binfo, tree fn, tree *virtuals, unsigned ix)
static tree dfs_modify_vtables (tree binfo, void *data)
static tree modify_all_vtables (tree t, tree virtuals)
static tree get_basefndecls (tree name, tree t)
void check_for_override (tree decl, tree ctype)
static void warn_hidden (tree t)
static void finish_struct_anon (tree t)
void maybe_add_class_template_decl_list (tree type, tree t, int friend_p)
static void add_implicitly_declared_members (tree t, int cant_have_const_cctor, int cant_have_const_assignment)
static int count_fields (tree fields)
static int add_fields_to_record_type (tree fields, struct sorted_fields_type *field_vec, int idx)
static void check_bitfield_decl (tree field)
static void check_field_decl (tree field, tree t, int *cant_have_const_ctor, int *no_const_asn_ref, int *any_default_members)
static void check_field_decls (tree t, tree *access_decls, int *cant_have_const_ctor_p, int *no_const_asn_ref_p)
static int record_subobject_offset (tree type, tree offset, splay_tree offsets)
static int check_subobject_offset (tree type, tree offset, splay_tree offsets)
static int walk_subobject_offsets (tree type, subobject_offset_fn f, tree offset, splay_tree offsets, tree max_offset, int vbases_p)
static void record_subobject_offsets (tree type, tree offset, splay_tree offsets, bool is_data_member)
static int layout_conflict_p (tree type, tree offset, splay_tree offsets, int vbases_p)
static void layout_nonempty_base_or_field (record_layout_info rli, tree decl, tree binfo, splay_tree offsets)
static int empty_base_at_nonzero_offset_p (tree type, tree offset, splay_tree offsets ATTRIBUTE_UNUSED)
static bool layout_empty_base (tree binfo, tree eoc, splay_tree offsets)
static treebuild_base_field (record_layout_info rli, tree binfo, splay_tree offsets, tree *next_field)
static void build_base_fields (record_layout_info rli, splay_tree offsets, tree *next_field)
static void check_methods (tree t)
static tree build_clone (tree fn, tree name)
void clone_function_decl (tree fn, int update_method_vec_p)
void adjust_clone_args (tree decl)
static void clone_constructors_and_destructors (tree t)
static void remove_zero_width_bit_fields (tree t)
static bool type_requires_array_cookie (tree type)
static void check_bases_and_members (tree t)
static tree create_vtable_ptr (tree t, tree *virtuals_p)
static void fixup_pending_inline (tree fn)
static void fixup_inline_methods (tree type)
static void propagate_binfo_offsets (tree binfo, tree offset)
static void layout_virtual_bases (record_layout_info rli, splay_tree offsets)
static tree end_of_base (tree binfo)
static tree end_of_class (tree t, int include_virtuals_p)
static void warn_about_ambiguous_bases (tree t)
static int splay_tree_compare_integer_csts (splay_tree_key k1, splay_tree_key k2)
static void include_empty_classes (record_layout_info rli)
static void layout_class_type (tree t, tree *virtuals_p)
void determine_key_method (tree type)
void finish_struct_1 (tree t)
void unreverse_member_declarations (tree t)
tree finish_struct (tree t, tree attributes)
static tree fixed_type_or_null (tree instance, int *nonnull, int *cdtorp)
int resolves_to_fixed_type_p (tree instance, int *nonnull)
void init_class_processing (void)
static void restore_class_cache (void)
void pushclass (tree type)
void invalidate_class_lookup_cache (void)
void popclass (void)
void push_class_stack (void)
void pop_class_stack (void)
bool currently_open_class (tree t)
tree currently_open_derived_class (tree t)
void push_nested_class (tree type)
void pop_nested_class (void)
int current_lang_depth (void)
void push_lang_context (tree name)
void pop_lang_context (void)
static tree resolve_address_of_overloaded_function (tree target_type, tree overload, tsubst_flags_t flags, bool template_only, tree explicit_targs, tree access_path)
tree instantiate_type (tree lhstype, tree rhs, tsubst_flags_t flags)
static tree get_vfield_name (tree type)
void print_class_statistics (void)
void build_self_reference (void)
int is_empty_class (tree type)
static bool contains_empty_class_p (tree type)
void maybe_note_name_used_in_class (tree name, tree decl)
void note_name_declared_in_class (tree name, tree decl)
tree get_vtbl_decl_for_binfo (tree binfo)
static tree get_primary_binfo (tree binfo)
static int maybe_indent_hierarchy (FILE *stream, int indent, int indented_p)
static tree dump_class_hierarchy_r (FILE *stream, int flags, tree binfo, tree igo, int indent)
static void dump_class_hierarchy_1 (FILE *stream, int flags, tree t)
void debug_class (tree t)
static void dump_class_hierarchy (tree t)
static void dump_array (FILE *stream, tree decl)
static void dump_vtable (tree t, tree binfo, tree vtable)
static void dump_vtt (tree t, tree vtt)
static void dump_thunk (FILE *stream, int indent, tree thunk)
void debug_thunks (tree fn)
static void finish_vtbls (tree t)
static void initialize_vtable (tree binfo, tree inits)
static void build_vtt (tree t)
static tree binfo_ctor_vtable (tree binfo)
static treebuild_vtt_inits (tree binfo, tree t, tree *inits, tree *index)
static tree dfs_build_secondary_vptr_vtt_inits (tree binfo, void *data_)
static tree dfs_fixup_binfo_vtbls (tree binfo, void *data)
static void build_ctor_vtbl_group (tree binfo, tree t)
static void accumulate_vtbl_inits (tree binfo, tree orig_binfo, tree rtti_binfo, tree t, tree inits)
static tree dfs_accumulate_vtbl_inits (tree binfo, tree orig_binfo, tree rtti_binfo, tree t, tree l)
static void build_vcall_and_vbase_vtbl_entries (tree binfo, vtbl_init_data *vid)
static void build_vbase_offset_vtbl_entries (tree binfo, vtbl_init_data *vid)
static void build_vcall_offset_vtbl_entries (tree binfo, vtbl_init_data *vid)
static void add_vcall_offset_vtbl_entries_r (tree binfo, vtbl_init_data *vid)
static void add_vcall_offset_vtbl_entries_1 (tree binfo, vtbl_init_data *vid)
static void add_vcall_offset (tree orig_fn, tree binfo, vtbl_init_data *vid)
static void build_rtti_vtbl_entries (tree binfo, vtbl_init_data *vid)
tree cp_fold_obj_type_ref (tree ref, tree known_type)

Variables

int current_class_depth
static int current_class_stack_size
static class_stack_node_t current_class_stack
type {
   gt_pointer_operator   new_value
   void *   cookie
resort_data


Typedef Documentation

Definition at line 107 of file class.c.


Function Documentation

static void accumulate_vtbl_inits ( tree  binfo,
tree  orig_binfo,
tree  rtti_binfo,
tree  t,
tree  inits 
) [static]

static int add_fields_to_record_type ( tree  fields,
struct sorted_fields_type *  field_vec,
int  idx 
) [static]

static void add_implicitly_declared_members ( tree  t,
int  cant_have_const_cctor,
int  cant_have_const_assignment 
) [static]

bool add_method ( tree  type,
tree  method,
tree  using_decl 
)

static void add_vcall_offset ( tree  orig_fn,
tree  binfo,
vtbl_init_data vid 
) [static]

static void add_vcall_offset_vtbl_entries_1 ( tree  binfo,
vtbl_init_data vid 
) [static]

static void add_vcall_offset_vtbl_entries_r ( tree  binfo,
vtbl_init_data vid 
) [static]

void adjust_clone_args ( tree  decl  ) 

static int alter_access ( tree  t,
tree  fdecl,
tree  access 
) [static]

static bool base_derived_from ( tree  derived,
tree  base 
) [static]

static tree binfo_ctor_vtable ( tree  binfo  )  [static]

Definition at line 6747 of file class.c.

References BINFO_VTABLE, TREE_CODE, and TREE_VALUE.

static tree* build_base_field ( record_layout_info  rli,
tree  binfo,
splay_tree  offsets,
tree next_field 
) [static]

static void build_base_fields ( record_layout_info  rli,
splay_tree  offsets,
tree next_field 
) [static]

static tree build_clone ( tree  fn,
tree  name 
) [static]

static void build_ctor_vtbl_group ( tree  binfo,
tree  t 
) [static]

static int build_primary_vtable ( tree  binfo,
tree  type 
) [static]

static void build_rtti_vtbl_entries ( tree  binfo,
vtbl_init_data vid 
) [static]

static int build_secondary_vtable ( tree  binfo  )  [static]

void build_self_reference ( void   ) 

static tree build_simple_base_path ( tree  expr,
tree  binfo 
) [static]

static void build_vbase_offset_vtbl_entries ( tree  binfo,
vtbl_init_data vid 
) [static]

static void build_vcall_and_vbase_vtbl_entries ( tree  binfo,
vtbl_init_data vid 
) [static]

static void build_vcall_offset_vtbl_entries ( tree  binfo,
vtbl_init_data vid 
) [static]

tree build_vfield_ref ( tree  datum,
tree  type 
)

tree build_vfn_ref ( tree  instance_ptr,
tree  idx 
)

static tree build_vtable ( tree  class_type,
tree  name,
tree  vtable_type 
) [static]

tree build_vtbl_ref ( tree  instance,
tree  idx 
)

Definition at line 619 of file class.c.

References build_vtable_entry_ref(), build_vtbl_ref_1(), and flag_vtable_gc.

static tree build_vtbl_ref_1 ( tree  instance,
tree  idx 
) [static]

static void build_vtt ( tree  t  )  [static]

static tree* build_vtt_inits ( tree  binfo,
tree  t,
tree inits,
tree index 
) [static]

static void check_bases ( tree  t,
int *  cant_have_const_ctor_p,
int *  no_const_asn_ref_p 
) [static]

static void check_bases_and_members ( tree  t  )  [static]

static void check_bitfield_decl ( tree  field  )  [static]

static void check_field_decl ( tree  field,
tree  t,
int *  cant_have_const_ctor,
int *  no_const_asn_ref,
int *  any_default_members 
) [static]

static void check_field_decls ( tree  t,
tree access_decls,
int *  cant_have_const_ctor_p,
int *  no_const_asn_ref_p 
) [static]

void check_for_override ( tree  decl,
tree  ctype 
)

static void check_methods ( tree  t  )  [static]

static int check_subobject_offset ( tree  type,
tree  offset,
splay_tree  offsets 
) [static]

static void clone_constructors_and_destructors ( tree  t  )  [static]

void clone_function_decl ( tree  fn,
int  update_method_vec_p 
)

static bool contains_empty_class_p ( tree  type  )  [static]

tree convert_to_base ( tree  object,
tree  type,
bool  check_access,
bool  nonnull 
)

tree convert_to_base_statically ( tree  expr,
tree  base 
)

static int count_fields ( tree  fields  )  [static]

Definition at line 2620 of file class.c.

References ANON_AGGR_TYPE_P, count_fields(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, and x.

tree cp_fold_obj_type_ref ( tree  ref,
tree  known_type 
)

static tree create_vtable_ptr ( tree  t,
tree virtuals_p 
) [static]

int current_lang_depth ( void   ) 

Definition at line 5674 of file class.c.

References current_lang_base, VARRAY_ACTIVE_SIZE, and VEC_length.

bool currently_open_class ( tree  t  ) 

Definition at line 5577 of file class.c.

References c, current_class_depth, current_class_type, i, same_type_p, and class_stack_node::type.

tree currently_open_derived_class ( tree  t  ) 

void debug_class ( tree  t  ) 

Definition at line 6520 of file class.c.

References dump_class_hierarchy_1(), and TDF_SLIM.

void debug_thunks ( tree  fn  ) 

Definition at line 6650 of file class.c.

References dump_thunk().

void determine_key_method ( tree  type  ) 

static void determine_primary_bases ( tree  t  )  [static]

static tree dfs_accumulate_vtbl_inits ( tree  binfo,
tree  orig_binfo,
tree  rtti_binfo,
tree  t,
tree  l 
) [static]

static tree dfs_build_secondary_vptr_vtt_inits ( tree  binfo,
void data_ 
) [static]

static bool dfs_find_final_overrider_1 ( tree  binfo,
find_final_overrider_data ffod,
unsigned  depth 
) [static]

static tree dfs_find_final_overrider_post ( tree binfo  ATTRIBUTE_UNUSED,
void data 
) [static]

Definition at line 1903 of file class.c.

References NULL_TREE, and VEC_pop.

static tree dfs_find_final_overrider_pre ( tree  binfo,
void data 
) [static]

static tree dfs_fixup_binfo_vtbls ( tree  binfo,
void data 
) [static]

static tree dfs_modify_vtables ( tree  binfo,
void data 
) [static]

static void dump_array ( FILE stream,
tree  decl 
) [static]

static void dump_class_hierarchy ( tree  t  )  [static]

Definition at line 6526 of file class.c.

References dump_begin(), dump_class_hierarchy_1(), dump_end(), flags, stream, and TDI_class.

static void dump_class_hierarchy_1 ( FILE stream,
int  flags,
tree  t 
) [static]

static tree dump_class_hierarchy_r ( FILE stream,
int  flags,
tree  binfo,
tree  igo,
int  indent 
) [static]

static void dump_thunk ( FILE stream,
int  indent,
tree  thunk 
) [static]

static void dump_vtable ( tree  t,
tree  binfo,
tree  vtable 
) [static]

static void dump_vtt ( tree  t,
tree  vtt 
) [static]

static int empty_base_at_nonzero_offset_p ( tree  type,
tree  offset,
splay_tree offsets  ATTRIBUTE_UNUSED 
) [static]

Definition at line 3503 of file class.c.

References integer_zerop(), and is_empty_class().

static tree end_of_base ( tree  binfo  )  [static]

static tree end_of_class ( tree  t,
int  include_virtuals_p 
) [static]

static tree find_final_overrider ( tree  derived,
tree  binfo,
tree  fn 
) [static]

tree finish_struct ( tree  t,
tree  attributes 
)

void finish_struct_1 ( tree  t  ) 

Definition at line 4992 of file class.c.

References abort, add_fields_to_record_type(), add_fields_to_vec(), gcc_target::cxx::adjust_class_at_definition, BINFO_NEW_VTABLE_MARKED, BINFO_OFFSET, BINFO_TYPE, BINFO_VIRTUALS, BINFO_VTABLE, build_int_cst(), build_primary_vtable(), build_tree_list, build_vtt(), BV_FN, chainon(), check_bases_and_members(), CLASSTYPE_AS_BASE, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_DESTRUCTORS, CLASSTYPE_EMPTY_P, CLASSTYPE_FRIEND_CLASSES, CLASSTYPE_GOT_SEMICOLON, CLASSTYPE_HAS_PRIMARY_BASE_P, CLASSTYPE_KEY_METHOD, CLASSTYPE_METHOD_VEC, CLASSTYPE_NEARLY_EMPTY_P, CLASSTYPE_PRIMARY_BINFO, CLASSTYPE_VFIELDS, COMPLETE_TYPE_P, complete_vars(), compute_record_mode(), constrain_class_visibility(), copy_decl(), count_fields(), gcc_target::cxx, DECL_FIELD_CONTEXT, DECL_FIELD_OFFSET, DECL_FRIENDLIST, DECL_LANG_SPECIFIC, DECL_MODE, DECL_SORTED_FIELDS, DECL_THUNK_P, DECL_VINDEX, DECL_VIRTUAL_P, determine_key_method(), dtor(), dump_class_hierarchy(), error(), error_mark_node, field_decl_cmp(), finish_struct_bits(), finish_vtbls(), fixup_inline_methods(), gcc_assert, GGC_NEWVAR, integer_zerop(), IS_AGGR_TYPE, key_method(), gcc_target::cxx::key_method_may_be_inline, keyed_classes, layout_class_type(), LOCAL_CLASS_P, make_tree_vec, maybe_suppress_debug_info(), modify_all_vtables(), my_friendly_assert, nreverse(), NULL_TREE, popclass(), qsort(), rest_of_type_compilation(), retrofit_lang_decl(), same_type_p, TARGET_VTABLE_USES_DESCRIPTORS, targetm, TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, tree_cons, TREE_PRIVATE, TREE_STATIC, TREE_TYPE, TREE_VEC_ELT, TYPE_BINFO, TYPE_BINFO_VIRTUALS, TYPE_BINFO_VTABLE, TYPE_CONTAINS_VPTR_P, TYPE_FIELDS, TYPE_FOR_JAVA, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_DESTRUCTOR, TYPE_MAIN_DECL, TYPE_MAIN_VARIANT, TYPE_MODE, TYPE_POLYMORPHIC_P, TYPE_SIZE, TYPE_VFIELD, VF_BINFO_VALUE, warn_hidden(), warn_nonvdtor, warn_overloaded_virtual, warning, and x.

static void finish_struct_anon ( tree  t  )  [static]

static void finish_struct_bits ( tree  t  )  [static]

static void finish_struct_methods ( tree  t  )  [static]

static void finish_vtbls ( tree  t  )  [static]

static tree fixed_type_or_null ( tree  instance,
int *  nonnull,
int *  cdtorp 
) [static]

static void fixup_inline_methods ( tree  type  )  [static]

static void fixup_pending_inline ( tree  fn  )  [static]

Definition at line 4253 of file class.c.

References args, DECL_ARGUMENTS, DECL_CONTEXT, DECL_PENDING_INLINE_INFO, and TREE_CHAIN.

static tree get_basefndecls ( tree  name,
tree  t 
) [static]

static tree get_primary_binfo ( tree  binfo  )  [static]

Definition at line 6381 of file class.c.

References BINFO_TYPE, CLASSTYPE_PRIMARY_BINFO, copied_binfo(), and NULL_TREE.

static tree get_vcall_index ( tree  fn,
tree  type 
) [static]

static tree get_vfield_name ( tree  type  )  [static]

tree get_vtable_decl ( tree  type,
int  complete 
)

static tree get_vtable_name ( tree  type  )  [static]

Definition at line 652 of file class.c.

References mangle_vtbl_for_type().

tree get_vtbl_decl_for_binfo ( tree  binfo  ) 

Definition at line 6358 of file class.c.

References BINFO_VTABLE, gcc_assert, my_friendly_assert, TREE_CODE, and TREE_OPERAND.

static GTY ( ()   )  [static]

static void handle_using_decl ( tree  using_decl,
tree  t 
) [static]

static void include_empty_classes ( record_layout_info  rli  )  [static]

void init_class_processing ( void   ) 

static void initialize_vtable ( tree  binfo,
tree  inits 
) [static]

tree instantiate_type ( tree  lhstype,
tree  rhs,
tsubst_flags_t  flags 
)

void invalidate_class_lookup_cache ( void   ) 

int is_empty_class ( tree  type  ) 

static void layout_class_type ( tree  t,
tree virtuals_p 
) [static]

Definition at line 4578 of file class.c.

References abi_version_at_least, record_layout_info_s::bitpos, BITS_PER_UNIT, bitsize_int, bitsize_unit_node, bitsize_zero_node, bitsizetype, build_base_fields(), build_decl, byte_position(), c_build_bitfield_integer_type(), char_type_node, CLASSTYPE_AS_BASE, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_EMPTY_P, CLASSTYPE_NON_POD_P, contains_empty_class_p(), convert(), create_vtable_ptr(), DECL_ALIGN, DECL_ARTIFICIAL, DECL_BIT_FIELD, DECL_C_BIT_FIELD, DECL_CONTEXT, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, DECL_IGNORED_P, DECL_MODE, DECL_NAME, DECL_SIZE, DECL_USER_ALIGN, determine_primary_bases(), determine_visibility(), end_of_class(), error_mark_node, finish_record_layout(), HOST_WIDE_INT, include_empty_classes(), INT_CST_LT, integer_types, integer_zerop(), IS_FAKE_BASE_TYPE, itk_char, itk_none, layout_decl(), layout_nonempty_base_or_field(), layout_virtual_bases(), make_anon_name(), make_node, maybe_register_incomplete_var(), normalize_rli(), NULL, NULL_TREE, PCC_BITFIELD_TYPE_MATTERS, place_field(), record_layout_info_s::record_align, record_subobject_offsets(), remove_zero_width_bit_fields(), rli_size_so_far(), rli_size_unit_so_far(), round_up(), size_binop(), size_zero_node, sizetype, splay_tree_compare_integer_csts(), splay_tree_delete(), splay_tree_new(), start_record_layout(), TREE_CHAIN, TREE_CODE, tree_int_cst_equal(), tree_int_cst_lt(), tree_low_cst(), TREE_NO_WARNING, TREE_TYPE, TYPE_ALIGN, TYPE_CONTEXT, TYPE_FIELDS, TYPE_MAIN_DECL, TYPE_MODE, TYPE_PRECISION, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_UNSIGNED, TYPE_USER_ALIGN, warn_abi, warn_about_ambiguous_bases(), and warning.

static int layout_conflict_p ( tree  type,
tree  offset,
splay_tree  offsets,
int  vbases_p 
) [static]

static bool layout_empty_base ( tree  binfo,
tree  eoc,
splay_tree  offsets 
) [static]

static void layout_nonempty_base_or_field ( record_layout_info  rli,
tree  decl,
tree  binfo,
splay_tree  offsets 
) [static]

static void layout_virtual_bases ( record_layout_info  rli,
splay_tree  offsets 
) [static]

static void layout_vtable_decl ( tree  binfo,
int  n 
) [static]

static int make_new_vtable ( tree  t,
tree  binfo 
) [static]

Definition at line 847 of file class.c.

References build_primary_vtable(), build_secondary_vtable(), and TYPE_BINFO.

void maybe_add_class_template_decl_list ( tree  type,
tree  t,
int  friend_p 
)

Definition at line 2515 of file class.c.

References CLASSTYPE_DECL_LIST, CLASSTYPE_TEMPLATE_INFO, NULL_TREE, and tree_cons.

static int maybe_indent_hierarchy ( FILE stream,
int  indent,
int  indented_p 
) [static]

Definition at line 6395 of file class.c.

References fprintf().

void maybe_note_name_used_in_class ( tree  name,
tree  decl 
)

static void maybe_warn_about_overly_private_class ( tree  t  )  [static]

static int method_name_cmp ( const void m1_p,
const void m2_p 
) [static]

Definition at line 1638 of file class.c.

References DECL_NAME, NULL_TREE, and OVL_CURRENT.

static tree modify_all_vtables ( tree  t,
tree  virtuals 
) [static]

static void modify_vtable_entry ( tree  t,
tree  binfo,
tree  fndecl,
tree  delta,
tree virtuals 
) [static]

void note_name_declared_in_class ( tree  name,
tree  decl 
)

void pop_class_stack ( void   ) 

Definition at line 5567 of file class.c.

References current_class_depth, and class_stack_node::hidden.

Referenced by pop_from_top_level().

void pop_lang_context ( void   ) 

Definition at line 5718 of file class.c.

References current_lang_base, current_lang_name, VARRAY_POP, VARRAY_TOP_TREE, and VEC_pop.

void pop_nested_class ( void   ) 

void popclass ( void   ) 

void print_class_statistics ( void   ) 

Definition at line 6200 of file class.c.

References fprintf().

static void propagate_binfo_offsets ( tree  binfo,
tree  offset 
) [static]

void push_class_stack ( void   ) 

Definition at line 5558 of file class.c.

References current_class_depth, and class_stack_node::hidden.

Referenced by push_to_top_level().

void push_lang_context ( tree  name  ) 

void push_nested_class ( tree  type  ) 

void pushclass ( tree  type  ) 

static int record_subobject_offset ( tree  type,
tree  offset,
splay_tree  offsets 
) [static]

static void record_subobject_offsets ( tree  type,
tree  offset,
splay_tree  offsets,
bool  is_data_member 
) [static]

static void remove_zero_width_bit_fields ( tree  t  )  [static]

Definition at line 4031 of file class.c.

References DECL_C_BIT_FIELD, DECL_INITIAL, TREE_CHAIN, TREE_CODE, and TYPE_FIELDS.

static tree resolve_address_of_overloaded_function ( tree  target_type,
tree  overload,
tsubst_flags_t  flags,
bool  template_only,
tree  explicit_targs,
tree  access_path 
) [static]

int resolves_to_fixed_type_p ( tree  instance,
int *  nonnull 
)

static int resort_method_name_cmp ( const void m1_p,
const void m2_p 
) [static]

Definition at line 1658 of file class.c.

References d1, d2, DECL_NAME, NULL_TREE, OVL_CURRENT, and resort_data.

void resort_type_method_vec ( void obj,
void *orig_obj  ATTRIBUTE_UNUSED,
gt_pointer_operator  new_value,
void cookie 
)

static void restore_class_cache ( void   )  [static]

int same_signature_p ( tree  fndecl,
tree  base_fndecl 
)

void set_linkage_according_to_type ( tree  type,
tree  decl 
)

Definition at line 666 of file class.c.

References DECL_INTERFACE_KNOWN, no_linkage_check(), and TREE_PUBLIC.

static int splay_tree_compare_integer_csts ( splay_tree_key  k1,
splay_tree_key  k2 
) [static]

Definition at line 4525 of file class.c.

References tree_int_cst_compare().

static bool type_requires_array_cookie ( tree  type  )  [static]

void unreverse_member_declarations ( tree  t  ) 

static void update_vtable_entry_for_fn ( tree  t,
tree  binfo,
tree  fn,
tree virtuals,
unsigned  ix 
) [static]

static int walk_subobject_offsets ( tree  type,
subobject_offset_fn  f,
tree  offset,
splay_tree  offsets,
tree  max_offset,
int  vbases_p 
) [static]

static void warn_about_ambiguous_bases ( tree  t  )  [static]

static void warn_hidden ( tree  t  )  [static]


Variable Documentation

Definition at line 1632 of file class.c.

Definition at line 48 of file class.c.

Definition at line 112 of file class.c.

Definition at line 111 of file class.c.

Definition at line 1631 of file class.c.

struct { ... } resort_data [static]


Generated on Wed Apr 8 15:27:36 2009 for Open64 by  doxygen 1.5.6