osprey/kgccfe/gnu/cp/decl.c File Reference

#include "config.h"
#include "system.h"
#include "tree.h"
#include "rtl.h"
#include "expr.h"
#include "flags.h"
#include "cp-tree.h"
#include "tree-inline.h"
#include "decl.h"
#include "lex.h"
#include "output.h"
#include "except.h"
#include "toplev.h"
#include "hashtab.h"
#include "ggc.h"
#include "tm_p.h"
#include "target.h"
#include "c-common.h"
#include "c-pragma.h"
#include "diagnostic.h"
#include "debug.h"
#include "timevar.h"
#include "input.h"
#include "operators.def"
#include "gt-cp-decl.h"
#include "gtype-cp.h"

Include dependency graph for decl.c:

Go to the source code of this file.

Data Types

type  walk_globals_data
type  cp_switch
type  predefined_identifier

Defines

#define named_label_uses   cp_function_chain->x_named_label_uses
#define local_names   cp_function_chain->x_local_names
#define named_labels   cp_function_chain->x_named_labels
#define ENTRY_INDEX(HASH, COUNT)   (((HASH) >> 3) & ((COUNT) - 1))
#define SCOPE_DEFAULT_HT_SIZE   (1 << 3)
#define CLASS_SCOPE_HT_SIZE   (1 << 3)
#define NAMESPACE_ORDINARY_HT_SIZE   (1 << 5)
#define NAMESPACE_STD_HT_SIZE   (1 << 8)
#define GLOBAL_SCOPE_HT_SIZE   (1 << 8)
#define NULL_BINDING_LEVEL   ((struct cp_binding_level *) NULL)
#define global_scope_p(SCOPE)   ((SCOPE) == NAMESPACE_LEVEL (global_namespace))
#define current_binding_level
#define class_binding_level   scope_chain->class_bindings
#define ENABLE_SCOPE_CHECKING   0
#define BINDING_LEVEL(NODE)   ((NODE)->scope.level)
#define cxx_saved_binding_make()   (ggc_alloc (sizeof (cxx_saved_binding)))
#define DEF_OPERATOR(NAME, CODE, MANGLING, ARITY, ASSN_P)

Enumerations

enum  deprecated_states {
  DEPRECATED_NORMAL, DEPRECATED_SUPPRESS, DEPRECATED_NORMAL, DEPRECATED_SUPPRESS,
  DEPRECATED_NORMAL, DEPRECATED_SUPPRESS, DEPRECATED_NORMAL, DEPRECATED_SUPPRESS,
  DEPRECATED_NORMAL, DEPRECATED_SUPPRESS, DEPRECATED_NORMAL, DEPRECATED_SUPPRESS
}

Functions/Subroutines

static tree grokparms PARAMS ((tree))
static const char
*redeclaration_error_message 
PARAMS ((tree, tree))
static void push_binding_level PARAMS ((struct cp_binding_level *, int, int))
static void pop_binding_level PARAMS ((void))
static void resume_binding_level PARAMS ((struct cp_binding_level *))
static int ambi_op_p PARAMS ((enum tree_code))
static cxx_saved_bindingstore_bindings (tree, cxx_saved_binding *)
static tree lookup_name_real PARAMS ((tree, int, int, int))
static tree grok_reference_init PARAMS ((tree, tree, tree, tree *))
static tree grokfndecl PARAMS ((tree, tree, tree, tree, int, enum overload_flags, tree, tree, int, int, int, int, int, int, tree))
static tree grokvardecl PARAMS ((tree, tree, RID_BIT_TYPE *, int, int, tree))
static tree lookup_tag PARAMS ((enum tree_code, tree, struct cp_binding_level *, int))
static void
set_identifier_type_value_with_scope 
PARAMS ((tree, tree, struct cp_binding_level *))
static void record_unknown_type PARAMS ((tree, const char *))
static tree builtin_function_1 PARAMS ((const char *, tree, tree, int, enum built_in_class, const char *, tree))
static tree build_library_fn_1 PARAMS ((tree, enum tree_code, tree))
static int member_function_or_else PARAMS ((tree, tree, enum overload_flags))
static void bad_specifiers PARAMS ((tree, const char *, int, int, int, int, int))
static tree
maybe_process_template_type_declaration 
PARAMS ((tree, int, struct cp_binding_level *))
static hashval_t typename_hash PARAMS ((const void *))
static int typename_compare PARAMS ((const void *, const void *))
static tree local_variable_p_walkfn PARAMS ((tree *, int *, void *))
static cxx_bindingfind_binding (tree, tree, cxx_binding *)
static tree select_decl (cxx_binding *, int)
static int lookup_flags PARAMS ((int, int))
static tree qualify_lookup PARAMS ((tree, int))
static tree
record_builtin_java_type 
PARAMS ((const char *, int))
static const char *tag_name PARAMS ((enum tag_types code))
static int walk_namespaces_r PARAMS ((tree, walk_namespaces_fn, void *))
static int walk_globals_r PARAMS ((tree, void *))
static void add_decl_to_level PARAMS ((tree, struct cp_binding_level *))
static void check_previous_goto_1 PARAMS ((tree, struct cp_binding_level *, tree, const char *, int))
static void check_previous_goto PARAMS ((struct named_label_use_list *))
static tree check_initializer (tree, tree, int, tree *)
static void
make_rtl_for_nonlocal_decl 
PARAMS ((tree, tree, const char *))
static tree
create_array_type_for_decl 
PARAMS ((tree, tree, tree))
static tree
check_special_function_return_type 
PARAMS ((special_function_kind, tree, tree))
static tree push_cp_library_fn PARAMS ((enum tree_code, tree))
static void initialize_local_var (tree, tree)
static void expand_static_init (tree, tree)
static tree next_initializable_field (tree)
static tree reshape_init (tree, tree *)
static GTY (())
static GTY ((deletable("")))
static void binding_entry_free (binding_entry entry)
static void binding_table_construct (binding_table table, size_t chain_count)
static void binding_table_free (binding_table table)
static binding_table binding_table_new (size_t chain_count)
static void binding_table_expand (binding_table table)
static void binding_table_insert (binding_table table, tree name, tree type)
binding_entry binding_table_find (binding_table table, tree name)
static tree binding_table_find_anon_type (binding_table table, tree name)
static binding_entry binding_table_reverse_maybe_remap (binding_table table, tree type, tree name)
static void binding_table_remove_anonymous_types (binding_table table)
void binding_table_foreach (binding_table table, bt_foreach_proc proc, void *data)
static void push_binding_level (struct cp_binding_level *newlevel, int tag_transparent, int keep)
static void find_class_binding_level ()
static void pop_binding_level ()
static void suspend_binding_level ()
static void resume_binding_level (struct cp_binding_level *b)
static struct cp_binding_level * make_binding_level ()
int global_bindings_p ()
static struct cp_binding_level * innermost_nonclass_level ()
int toplevel_bindings_p ()
int namespace_bindings_p ()
void keep_next_level (int keep)
int kept_level_p ()
bool innermost_scope_is_class_p ()
static void declare_namespace_level ()
int template_parm_scope_p ()
tmpl_spec_kind current_tmpl_spec_kind (int n_class_scopes)
void set_class_shadows (tree shadows)
void pushlevel (int tag_transparent)
void maybe_push_cleanup_level (tree type)
void begin_scope (scope_kind sk)
void finish_scope ()
void note_level_for_for ()
void note_level_for_try ()
void note_level_for_catch ()
static int add_binding (tree id, tree decl)
static void add_decl_to_level (tree decl, struct cp_binding_level *b)
void push_local_binding (tree id, tree decl, int flags)
int push_class_binding (tree id, tree decl)
static void pop_binding (tree id, tree decl)
static void pop_label (tree label, tree old_value)
static void pop_labels (tree block)
tree poplevel (int keep, int reverse, int functionbody)
void delete_block (tree block)
void insert_block (tree block)
void set_block (block)
void pushlevel_class ()
void poplevel_class ()
void clear_identifier_class_values ()
int vtable_decl_p (tree t, data)
int vtype_decl_p (tree t, data)
tree cp_namespace_decls (tree ns)
static int walk_vtables_r (tree namespace, void *data)
int walk_vtables (walk_globals_pred p, walk_globals_fn f, void *data)
static int walk_namespaces_r (tree namespace, walk_namespaces_fn f, void *data)
int walk_namespaces (walk_namespaces_fn f, void *data)
static int walk_globals_r (tree namespace, void *data)
int walk_globals (walk_globals_pred p, walk_globals_fn f, void *data)
int wrapup_globals_for_namespace (tree namespace, void *data)
static void bt_print_entry (binding_entry entry, void *data)
void print_binding_level (struct cp_binding_level *lvl)
void print_other_binding_stack (struct cp_binding_level *stack)
void print_binding_stack ()
cxx_bindingcxx_scope_find_binding_for_name (tree scope, tree name)
cxx_bindingbinding_for_name (tree name, tree scope)
tree namespace_binding (tree name, tree scope)
void set_namespace_binding (tree name, tree scope, tree val)
void push_namespace (tree name)
void pop_namespace ()
void push_nested_namespace (tree ns)
void pop_nested_namespace (tree ns)
void maybe_push_to_top_level (int pseudo)
void push_to_top_level ()
void pop_from_top_level ()
static void set_identifier_type_value_with_scope (tree id, tree type, struct cp_binding_level *b)
void set_identifier_type_value (tree id, tree type)
tree identifier_type_value (tree id)
void pop_everything ()
static tree maybe_process_template_type_declaration (tree type, int globalize, struct cp_binding_level *b)
tree create_implicit_typedef (tree name, tree type)
static void push_local_name (tree decl)
void pushtag (tree name, tree type, int globalize)
tree make_anon_name ()
void clear_anon_tags ()
int decls_match (tree newdecl, tree olddecl)
static void warn_extern_redeclared_static (tree newdecl, tree olddecl)
int duplicate_decls (tree newdecl, tree olddecl)
tree pushdecl (tree x)
static tree pushdecl_with_scope (tree x, struct cp_binding_level *level)
tree pushdecl_namespace_level (tree x)
static tree pushdecl_top_level_1 (tree x, tree *init)
tree pushdecl_top_level (tree x)
tree pushdecl_top_level_and_finish (tree x, tree init)
bool pushdecl_class_level (tree x)
tree maybe_push_decl (tree decl)
bool push_class_level_binding (tree name, tree x)
tree push_using_decl (tree scope, tree name)
tree push_using_directive (tree used)
tree push_overloaded_decl (tree decl, int flags)
tree implicitly_declare (tree functionid)
static const char * redeclaration_error_message (tree newdecl, tree olddecl)
static tree make_label_decl (tree id, int local_p)
static void use_label (tree decl)
tree lookup_label (tree id)
tree declare_local_label (tree id)
static int decl_jump_unsafe (tree decl)
static void check_previous_goto_1 (tree decl, struct cp_binding_level *level, tree names, const char *file, int line)
static void check_previous_goto (struct named_label_use_list *use)
static void check_switch_goto (struct cp_binding_level *level)
static void check_previous_gotos (tree decl)
void check_goto (tree decl)
tree define_label (char *filename, int line, tree name) const
void push_switch (tree switch_stmt)
void pop_switch ()
tree finish_case_label (tree low_value, tree high_value)
tree getdecls ()
static void storedecls (tree decls)
void cxx_remember_type_decls (binding_table table)
static tree follow_tag_typedef (tree type)
static tree lookup_tag (enum tree_code form, tree name, struct cp_binding_level *binding_level, int thislevel_only)
static tree lookup_tag_reverse (tree type, tree name)
tree lookup_namespace_name (tree namespace, tree name)
static hashval_t typename_hash (void *k) const
static int typename_compare (void *k1, const void *k2) const
static GTY ((param_is(union tree_node)))
tree make_typename_type (tree context, tree name, tsubst_flags_t complain)
tree make_unbound_class_template (tree context, tree name, tsubst_flags_t complain)
tree unqualified_namespace_lookup (tree name, int flags, tree *spacesp)
static int lookup_flags (int prefer_type, int namespaces_only)
static tree qualify_lookup (tree val, int flags)
static void warn_about_implicit_typename_lookup (tree typename, tree binding)
tree check_for_out_of_scope_variable (tree decl)
static tree lookup_name_real (tree name, int prefer_type, int nonclass, int namespaces_only)
tree lookup_name_nonclass (tree name)
tree lookup_function_nonclass (tree name, tree args)
tree lookup_name_namespace_only (tree name)
tree lookup_name (tree name, int prefer_type)
tree lookup_name_current_level (tree name)
tree lookup_type_current_level (tree name)
void begin_only_namespace_names ()
void end_only_namespace_names ()
void record_builtin_type (enum rid rid_index, const char *name, tree type)
static tree record_builtin_java_type (char *name, int size) const
static void record_unknown_type (tree type, const char *name)
static void initialize_predefined_identifiers ()
void cxx_init_decl_processing ()
tree cp_fname_init (char *name) const
static tree cp_make_fname_decl (tree id, int type_dep)
static tree builtin_function_1 (char *name, tree type, tree context, int code, enum built_in_class class, const char *libname, tree attrs) const
tree builtin_function (char *name, tree type, int code, enum built_in_class class, const char *libname, tree attrs) const
static tree build_library_fn_1 (tree name, enum tree_code operator_code, tree type)
tree build_library_fn (tree name, tree type)
static tree build_cp_library_fn (tree name, enum tree_code operator_code, tree type)
tree build_library_fn_ptr (char *name, tree type) const
tree build_cp_library_fn_ptr (char *name, tree type) const
tree push_library_fn (tree name, tree type)
static tree push_cp_library_fn (enum tree_code operator_code, tree type)
tree push_void_library_fn (tree name, tree parmtypes)
tree push_throw_library_fn (tree name, tree type)
void cxx_insert_default_attributes (tree decl)
void fixup_anonymous_aggr (tree t)
tree check_tag_decl (tree declspecs)
void shadow_tag (tree declspecs)
tree groktypename (tree typename)
tree start_decl (tree declarator, tree declspecs, int initialized, tree attributes, tree prefix_attributes)
void start_decl_1 (tree decl)
static tree grok_reference_init (tree decl, tree type, tree init, tree *cleanup)
static void maybe_deduce_size_from_array_init (tree decl, tree init)
static void layout_var_decl (tree decl)
static void maybe_commonize_var (tree decl)
static void check_for_uninitialized_const_var (tree decl)
static void make_rtl_for_nonlocal_decl (tree decl, tree init, const char *asmspec)
void maybe_inject_for_scope_var (tree decl)
void cp_finish_decl (tree decl, tree init, tree asmspec_tree, int flags)
void finish_decl (tree decl, tree init, tree asmspec_tree)
tree declare_global_var (tree name, tree type)
static tree get_atexit_node ()
static tree get_dso_handle_node ()
static tree start_cleanup_fn ()
static void end_cleanup_fn ()
void register_dtor_fn (tree decl)
tree start_handler_parms (tree declspecs, tree declarator)
int complete_array_type (tree type, tree initial_value, int do_default)
static int member_function_or_else (tree ctype, tree cur_type, enum overload_flags flags)
static void bad_specifiers (tree object, const char *type, int virtualp, int quals, int inlinep, int friendp, int raises)
static tree grokfndecl (tree ctype, tree type, tree declarator, tree orig_declarator, int virtualp, enum overload_flags flags, tree quals, tree raises, int check, int friendp, int publicp, int inlinep, int funcdef_flag, int template_count, tree in_namespace)
static tree grokvardecl (tree type, tree name, RID_BIT_TYPE *specbits_in, int initialized, int constp, tree scope)
tree build_ptrmemfunc_type (tree type)
tree build_ptrmem_type (tree class_type, tree member_type)
int check_static_variable_definition (tree decl, tree type)
tree compute_array_index_type (tree name, tree size)
static tree create_array_type_for_decl (tree name, tree type, tree size)
static tree check_special_function_return_type (special_function_kind sfk, tree type, tree optype)
tree grokdeclarator (tree declarator, tree declspecs, enum decl_context decl_context, int initialized, tree *attrlist)
int parmlist_is_exprlist (tree exprs)
static void require_complete_types_for_parms (tree parms)
int local_variable_p (tree t)
int nonstatic_local_decl_p (tree t)
static tree local_variable_p_walkfn (tree *tp, walk_subtrees, data)
tree check_default_argument (tree decl, tree arg)
static tree grokparms (tree first_parm)
int copy_fn_p (tree d)
void grok_special_member_properties (tree decl)
int grok_ctor_properties (tree ctype, tree decl)
static int ambi_op_p (enum tree_code code)
static int unary_op_p (enum tree_code code)
void grok_op_properties (tree decl, int friendp)
static const char * tag_name (enum tag_types code)
static tree check_elaborated_type_specifier (enum tag_types tag_code, tree type)
tree xref_tag (enum tag_types tag_code, tree name, tree attributes, bool globalize)
tree xref_tag_from_type (tree old, tree id, int globalize)
void xref_basetypes (tree ref, tree binfo)
tree start_enum (tree name)
void finish_enum (tree enumtype)
void build_enumerator (tree name, tree value, tree enumtype)
static void check_function_type (tree decl, tree current_function_parms)
int start_function (tree declspecs, tree declarator, tree attrs, int flags)
static void store_parm_decls (tree current_function_parms)
static void save_function_data (tree decl)
static void begin_constructor_body ()
static void finish_constructor_body ()
static void begin_destructor_body ()
static void finish_destructor_body ()
tree begin_function_body ()
void finish_function_body (tree compstmt)
tree finish_function (int flags)
tree start_method (tree declspecs, tree declarator, tree attrlist)
tree finish_method (tree decl)
void maybe_register_incomplete_var (tree var)
void complete_vars (tree type)
tree cxx_maybe_build_cleanup (tree decl)
void finish_stmt ()
void revert_static_member_fn (tree decl)
void cxx_push_function_context (struct function *f)
void cxx_pop_function_context (struct function *f)
enum cp_tree_node_structure_enum cp_tree_node_structure (union lang_tree_node *t)
tree identifier_global_value (tree t)
tree build_void_list_node ()
static int cp_missing_noreturn_ok_p (tree decl)

Variables

tree error_mark_list
tree cp_global_trees [CPTI_MAX]
tree static_aggregates
tree integer_two_node
tree integer_three_node
tree last_function_parms
tree anonymous_namespace_name
int function_depth
static enum deprecated_states deprecated_state = DEPRECATED_NORMAL
int adding_implicit_members = 0
bool have_extern_spec
static int no_print_functions = 0
static int no_print_builtins = 0
struct saved_scope * scope_chain
static int anon_cnt = 0
static struct cp_switchswitch_stack


Define Documentation

#define BINDING_LEVEL ( NODE   )     ((NODE)->scope.level)

Definition at line 1144 of file decl.c.

#define class_binding_level   scope_chain->class_bindings

Definition at line 682 of file decl.c.

#define CLASS_SCOPE_HT_SIZE   (1 << 3)

Definition at line 344 of file decl.c.

Value:

(cfun && cp_function_chain->bindings    \
   ? cp_function_chain->bindings    \
   : scope_chain->bindings)

Definition at line 675 of file decl.c.

 
#define cxx_saved_binding_make (  )     (ggc_alloc (sizeof (cxx_saved_binding)))

Definition at line 2576 of file decl.c.

#define DEF_OPERATOR ( NAME,
CODE,
MANGLING,
ARITY,
ASSN_P   ) 

Value:

if (ansi_opname (CODE) == name)       \
    {             \
      operator_code = (CODE);       \
      break;            \
    }             \
  else if (ansi_assopname (CODE) == name)     \
    {             \
      operator_code = (CODE);       \
      DECL_ASSIGNMENT_OPERATOR_P (decl) = 1;    \
      break;            \
    }

#define ENABLE_SCOPE_CHECKING   0

#define ENTRY_INDEX ( HASH,
COUNT   )     (((HASH) >> 3) & ((COUNT) - 1))

Definition at line 294 of file decl.c.

#define GLOBAL_SCOPE_HT_SIZE   (1 << 8)

Definition at line 347 of file decl.c.

#define global_scope_p ( SCOPE   )     ((SCOPE) == NAMESPACE_LEVEL (global_namespace))

Definition at line 670 of file decl.c.

#define local_names   cp_function_chain->x_local_names

Definition at line 225 of file decl.c.

#define named_label_uses   cp_function_chain->x_named_label_uses

Definition at line 223 of file decl.c.

#define named_labels   cp_function_chain->x_named_labels

Definition at line 258 of file decl.c.

#define NAMESPACE_ORDINARY_HT_SIZE   (1 << 5)

Definition at line 345 of file decl.c.

#define NAMESPACE_STD_HT_SIZE   (1 << 8)

Definition at line 346 of file decl.c.

#define NULL_BINDING_LEVEL   ((struct cp_binding_level *) NULL)

Definition at line 667 of file decl.c.

#define SCOPE_DEFAULT_HT_SIZE   (1 << 3)

Definition at line 343 of file decl.c.


Enumeration Type Documentation

Enumerator:
DEPRECATED_NORMAL 
DEPRECATED_SUPPRESS 
DEPRECATED_NORMAL 
DEPRECATED_SUPPRESS 
DEPRECATED_NORMAL 
DEPRECATED_SUPPRESS 
DEPRECATED_NORMAL 
DEPRECATED_SUPPRESS 
DEPRECATED_NORMAL 
DEPRECATED_SUPPRESS 
DEPRECATED_NORMAL 
DEPRECATED_SUPPRESS 

Definition at line 274 of file decl.c.


Function Documentation

static int add_binding ( tree  id,
tree  decl 
) [static]

static void add_decl_to_level ( tree  decl,
struct cp_binding_level *  b 
) [static]

static int ambi_op_p ( enum tree_code  code  )  [static]

Definition at line 13083 of file decl.c.

static void bad_specifiers ( tree  object,
const char *  type,
int  virtualp,
int  quals,
int  inlinep,
int  friendp,
int  raises 
) [static]

Definition at line 9527 of file decl.c.

References cp_error_at(), error(), TREE_CODE, TREE_TYPE, TYPE_PTRFN_P, TYPE_PTRMEMFUNC_P, and TYPE_REFFN_P.

static void begin_constructor_body (  )  [static]

Definition at line 14722 of file decl.c.

static void begin_destructor_body ( void   )  [static]

tree begin_function_body ( void   ) 

void begin_only_namespace_names (  ) 

Definition at line 6736 of file decl.c.

void begin_scope ( scope_kind  sk  ) 

Definition at line 1092 of file decl.c.

References abort, current_binding_level, pushlevel(), sk_template_parms, and sk_template_spec.

static void binding_entry_free ( binding_entry  entry  )  [inline, static]

Definition at line 321 of file decl.c.

cxx_binding* binding_for_name ( tree  name,
tree  scope 
)

static void binding_table_construct ( binding_table  table,
size_t  chain_count 
) [inline, static]

Definition at line 351 of file decl.c.

References ggc_alloc_cleared.

static void binding_table_expand ( binding_table  table  )  [static]

Definition at line 390 of file decl.c.

References binding_table_construct(), ENTRY_INDEX, i, IDENTIFIER_HASH_VALUE, and NULL.

binding_entry binding_table_find ( binding_table  table,
tree  name 
)

Definition at line 433 of file decl.c.

References ENTRY_INDEX, IDENTIFIER_HASH_VALUE, and NULL.

static tree binding_table_find_anon_type ( binding_table  table,
tree  name 
) [inline, static]

Definition at line 446 of file decl.c.

References ENTRY_INDEX, IDENTIFIER_HASH_VALUE, NULL, and TYPE_IDENTIFIER.

void binding_table_foreach ( binding_table  table,
bt_foreach_proc  proc,
void data 
)

Definition at line 519 of file decl.c.

References i, and NULL.

static void binding_table_free ( binding_table  table  )  [inline, static]

Definition at line 361 of file decl.c.

References binding_entry_free(), i, and NULL.

static void binding_table_insert ( binding_table  table,
tree  name,
tree  type 
) [inline, static]

Definition at line 417 of file decl.c.

References binding_table_expand(), ENTRY_INDEX, i, and IDENTIFIER_HASH_VALUE.

static binding_table binding_table_new ( size_t  chain_count  )  [inline, static]

Definition at line 381 of file decl.c.

References binding_table_construct(), and ggc_alloc.

static void binding_table_remove_anonymous_types ( binding_table  table  )  [static]

Definition at line 495 of file decl.c.

References ANON_AGGRNAME_P, binding_entry_free(), i, NULL, and p.

static binding_entry binding_table_reverse_maybe_remap ( binding_table  table,
tree  type,
tree  name 
) [inline, static]

Definition at line 460 of file decl.c.

References ENTRY_INDEX, i, IDENTIFIER_HASH_VALUE, NULL, and p.

static void bt_print_entry ( binding_entry  entry,
void data 
) [static]

Definition at line 2192 of file decl.c.

References fprintf(), len, NULL, p, print_node_brief(), and TYPE_IDENTIFIER.

static tree build_cp_library_fn ( tree  name,
enum tree_code  operator_code,
tree  type 
) [static]

tree build_cp_library_fn_ptr ( char *  name,
tree  type 
) const

Definition at line 7326 of file decl.c.

References build_cp_library_fn(), and get_identifier().

void build_enumerator ( tree  name,
tree  value,
tree  enumtype 
)

tree build_library_fn ( tree  name,
tree  type 
)

Definition at line 7288 of file decl.c.

References build_library_fn_1().

static tree build_library_fn_1 ( tree  name,
enum tree_code  operator_code,
tree  type 
) [static]

tree build_library_fn_ptr ( char *  name,
tree  type 
) const

Definition at line 7315 of file decl.c.

References build_library_fn(), and get_identifier().

tree build_ptrmem_type ( tree  class_type,
tree  member_type 
)

Definition at line 10044 of file decl.c.

References build_offset_type(), and build_pointer_type().

tree build_ptrmemfunc_type ( tree  type  ) 

tree build_void_list_node ( void   ) 

Definition at line 15425 of file decl.c.

References build_tree_list, NULL_TREE, TREE_PARMLIST, and void_type_node.

tree builtin_function ( char *  name,
tree  type,
int  code,
enum built_in_class  class,
const char *  libname,
tree  attrs 
) const

static tree builtin_function_1 ( char *  name,
tree  type,
tree  context,
int  code,
enum built_in_class  class,
const char *  libname,
tree  attrs 
) const [static]

tree check_default_argument ( tree  decl,
tree  arg 
)

static tree check_elaborated_type_specifier ( enum tag_types  tag_code,
tree  type 
) [static]

Definition at line 13463 of file decl.c.

References error(), error_mark_node, follow_tag_typedef(), tag_name, TREE_CODE, and TYPE_NAME.

tree check_for_out_of_scope_variable ( tree  decl  ) 

static void check_for_uninitialized_const_var ( tree  decl  )  [static]

Definition at line 8154 of file decl.c.

References CP_TYPE_CONST_P, DECL_INITIAL, error(), TREE_CODE, TREE_TYPE, and TYPE_NEEDS_CONSTRUCTING.

static void check_function_type ( tree  decl,
tree  current_function_parms 
) [static]

void check_goto ( tree  decl  ) 

static tree check_initializer ( tree  decl,
tree  init,
int  flags,
tree cleanup 
) [static]

static void check_previous_goto ( struct named_label_use_list *  use  )  [static]

Definition at line 5312 of file decl.c.

References check_previous_goto_1().

static void check_previous_goto_1 ( tree  decl,
struct cp_binding_level *  level,
tree  names,
const char *  file,
int  line 
) [static]

static void check_previous_gotos ( tree  decl  )  [static]

Definition at line 5331 of file decl.c.

References check_previous_goto(), named_label_uses, and TREE_USED.

static tree check_special_function_return_type ( special_function_kind  sfk,
tree  type,
tree  optype 
) [static]

int check_static_variable_definition ( tree  decl,
tree  type 
)

static void check_switch_goto ( struct cp_binding_level *  level  )  [static]

Definition at line 5321 of file decl.c.

References check_previous_goto_1(), NULL, and NULL_TREE.

tree check_tag_decl ( tree  declspecs  ) 

void clear_anon_tags (  ) 

Definition at line 3121 of file decl.c.

References anon_cnt, b, binding_table_remove_anonymous_types(), current_binding_level, and NULL.

void clear_identifier_class_values (  ) 

Definition at line 1986 of file decl.c.

References class_binding_level, IDENTIFIER_CLASS_VALUE, NULL_TREE, TREE_CHAIN, and TREE_PURPOSE.

int complete_array_type ( tree  type,
tree  initial_value,
int  do_default 
)

void complete_vars ( tree  type  ) 

tree compute_array_index_type ( tree  name,
tree  size 
)

int copy_fn_p ( tree  d  ) 

void cp_finish_decl ( tree  decl,
tree  init,
tree  asmspec_tree,
int  flags 
)

tree cp_fname_init ( char *  name  )  const

static tree cp_make_fname_decl ( tree  id,
int  type_dep 
) [static]

static int cp_missing_noreturn_ok_p ( tree  decl  )  [static]

Definition at line 15433 of file decl.c.

References DECL_MAIN_P.

tree cp_namespace_decls ( tree  ns  ) 

Definition at line 2025 of file decl.c.

References NAMESPACE_LEVEL.

enum cp_tree_node_structure_enum cp_tree_node_structure ( union lang_tree_node *  t  ) 

static tree create_array_type_for_decl ( tree  name,
tree  type,
tree  size 
) [static]

tree create_implicit_typedef ( tree  name,
tree  type 
)

Definition at line 2916 of file decl.c.

References build_decl, DECL_ARTIFICIAL, SET_DECL_IMPLICIT_TYPEDEF_P, and TYPE_NAME.

tmpl_spec_kind current_tmpl_spec_kind ( int  n_class_scopes  ) 

void cxx_init_decl_processing ( void   ) 

Definition at line 6901 of file decl.c.

References abi_node, abort_fndecl, add_exception_specifier(), binding_table_new(), BOOL_TYPE_SIZE, boolean_false_node, boolean_true_node, boolean_type_node, build_common_tree_nodes(), build_cplus_array_type(), build_exception_variant(), build_function_type(), build_int_2, build_library_fn_ptr(), build_pointer_type(), build_qualified_type(), build_tree_list, c_common_nodes_and_builtins(), class_type, const_ptr_type_node, cp_make_fname_decl(), cp_missing_noreturn_ok_p(), current_binding_level, current_function_decl, current_lang_name, current_namespace, declare_namespace_level(), delta_type_node, empty_except_spec, error_mark_node, flag_const_strings, flag_exceptions, flag_inline_functions, flag_inline_trees, flag_no_inline, flag_pedantic_errors, flag_permissive, flag_signed_char, flag_weak, flag_writable_strings, force_align_functions_log, get_identifier(), global_delete_fndecl, global_namespace, GLOBAL_SCOPE_HT_SIZE, global_type_node, init_class_processing(), init_exception_processing(), init_rtti_processing(), init_search_processing(), initialize_predefined_identifiers(), integer_type_node, java_boolean_type_node, java_byte_type_node, java_char_type_node, java_double_type_node, java_float_type_node, java_int_type_node, java_long_type_node, java_short_type_node, lang_missing_noreturn_ok_p, lang_name_c, lang_name_cplusplus, layout_type(), make_fname_decl, make_node, make_unsigned_type(), my_friendly_assert, NAMESPACE_LEVEL, NULL, NULL_BINDING_LEVEL, NULL_TREE, pop_namespace(), ptr_type_node, ptrdiff_type_node, ptrmemfunc_vbit_in_pfn, push_cp_library_fn(), push_namespace(), push_to_top_level(), pushlevel(), record_builtin_java_type(), record_builtin_type(), record_unknown_type(), RID_BOOL, RID_MAX, size_type_node, start_fname_decls(), std_identifier, std_node, string_type_node, supports_one_only(), TARGET_PTRMEMFUNC_VBIT_LOCATION, tree_cons, TREE_SET_CODE, TREE_TYPE, TYPE_ARG_TYPES, TYPE_MAX_VALUE, TYPE_POINTER_TO, TYPE_PRECISION, TYPE_QUAL_CONST, TYPE_REFERENCE_TO, UNKNOWN_TYPE, unknown_type_node, using_eh_for_cleanups(), VARRAY_TREE_INIT, void_list_node, void_type_node, vtable_entry_type, vtable_index_type, VTBL_PTR_TYPE, vtbl_ptr_type_node, vtbl_type_node, vtt_parm_type, and xref_tag().

void cxx_insert_default_attributes ( tree  decl  ) 

tree cxx_maybe_build_cleanup ( tree  decl  ) 

void cxx_pop_function_context ( struct function f  ) 

Definition at line 15387 of file decl.c.

void cxx_push_function_context ( struct function f  ) 

Definition at line 15366 of file decl.c.

References current_stmt_tree(), expanding_p, ggc_alloc_cleared, and p.

void cxx_remember_type_decls ( binding_table  table  ) 

Definition at line 5587 of file decl.c.

References current_binding_level.

Referenced by pushclass().

cxx_binding* cxx_scope_find_binding_for_name ( tree  scope,
tree  name 
)

static int decl_jump_unsafe ( tree  decl  )  [static]

tree declare_global_var ( tree  name,
tree  type 
)

tree declare_local_label ( tree  id  ) 

static void declare_namespace_level (  )  [static]

Definition at line 934 of file decl.c.

References current_binding_level.

int decls_match ( tree  newdecl,
tree  olddecl 
)

tree define_label ( char *  filename,
int  line,
tree  name 
) const

void delete_block ( tree  block  ) 

Definition at line 1835 of file decl.c.

References current_binding_level, NULL_TREE, TREE_CHAIN, and TREE_USED.

int duplicate_decls ( tree  newdecl,
tree  olddecl 
)

Definition at line 3296 of file decl.c.

References build_exception_variant(), CAN_HAVE_FULL_LANG_DECL_P, chainon(), CLASSTYPE_FRIEND_CLASSES, comp_except_specs(), comp_template_parms(), compparms(), COPY_DECL_ASSEMBLER_NAME, COPY_DECL_RTL, CP_DECL_CONTEXT, cp_error_at(), cp_pedwarn_at(), cp_warning_at(), current_class_type, current_lang_depth(), DECL_ABSTRACT, DECL_ANTICIPATED, DECL_ARGUMENTS, DECL_ARTIFICIAL, DECL_ASSEMBLER_NAME, DECL_ASSEMBLER_NAME_SET_P, DECL_ATTRIBUTES, DECL_BEFRIENDING_CLASSES, DECL_BUILT_IN, DECL_BUILT_IN_CLASS, DECL_COMDAT, DECL_COMMON, DECL_CONTEXT, DECL_DECLARED_INLINE_P, DECL_DEFER_OUTPUT, DECL_EXTERN_C_P, DECL_EXTERNAL, DECL_FRIEND_P, DECL_FUNCTION_CODE, DECL_FUNCTION_TEMPLATE_P, DECL_IMPLICIT_TYPEDEF_P, DECL_IN_AGGR_P, DECL_IN_SYSTEM_HEADER, DECL_INITIAL, DECL_INITIALIZED_IN_CLASS_P, DECL_INITIALIZED_P, DECL_INLINE, DECL_INTERFACE_KNOWN, DECL_LANG_SPECIFIC, DECL_LANGUAGE, DECL_NAME, DECL_NAMESPACE_ALIAS, DECL_NEEDS_FINAL_OVERRIDER_P, DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK, DECL_NONCONVERTING_P, DECL_NOT_REALLY_EXTERN, DECL_NUM_STMTS, DECL_ONE_ONLY, DECL_ORIGINAL_TYPE, DECL_OVERLOADED_OPERATOR_P, DECL_P, DECL_PENDING_INLINE_INFO, DECL_PURE_VIRTUAL_P, DECL_RESULT, DECL_RTL, DECL_RTL_SET_P, DECL_SAVED_TREE, DECL_SECTION_NAME, DECL_SIZE, DECL_SOURCE_LINE, DECL_SOURCE_LOCATION, DECL_STATIC_CONSTRUCTOR, DECL_STATIC_DESTRUCTOR, DECL_TEMPLATE_INFO, DECL_TEMPLATE_INSTANTIATED, DECL_TEMPLATE_INSTANTIATION, DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT, DECL_TEMPLATE_SPECIALIZATION, DECL_TEMPLATE_SPECIALIZATIONS, DECL_THIS_EXTERN, DECL_THIS_STATIC, DECL_THUNKS, DECL_TI_TEMPLATE, DECL_UID, DECL_UNINLINABLE, DECL_USE_TEMPLATE, DECL_VINDEX, DECL_VIRTUAL_P, decls, decls_match(), error(), error_mark_node, flag_exceptions, i, IDENTIFIER_ERROR_LOCUS, layout_decl(), layout_type(), lookup_attribute(), make_decl_rtl(), memcpy, gcc_target::merge_decl_attributes, merge_types(), merge_weak(), my_friendly_assert, namespace_bindings_p(), NAMESPACE_LEVEL, NULL, NULL_TREE, pedantic, pedwarn(), processing_template_decl, redeclaration_error_message(), same_type_p, SET_DECL_LANGUAGE, SET_DECL_RTL, SET_DECL_TEMPLATE_SPECIALIZATION, SET_OVERLOADED_OPERATOR_CODE, simple_cst_equal(), t1, t2, targetm, TREE_ADDRESSABLE, TREE_ASM_WRITTEN, TREE_CHAIN, TREE_CODE, TREE_CODE_LENGTH, TREE_NOTHROW, TREE_PUBLIC, TREE_PURPOSE, TREE_READONLY, TREE_SIDE_EFFECTS, TREE_STATIC, TREE_THIS_VOLATILE, TREE_TYPE, TREE_USED, TREE_VALUE, TYPE_ARG_TYPES, TYPE_LANG_SPECIFIC, TYPE_RAISES_EXCEPTIONS, uses_template_parms(), value_member(), void_list_node, warn_extern_redeclared_static(), warn_inline, warn_redundant_decls, warn_shadow, and warning.

static void end_cleanup_fn ( void   )  [static]

Definition at line 9213 of file decl.c.

References expand_body(), finish_function(), and pop_from_top_level().

void end_only_namespace_names (  ) 

Definition at line 6742 of file decl.c.

static void expand_static_init ( tree  decl,
tree  init 
) [static]

static cxx_binding * find_binding ( tree  name,
tree  scope,
cxx_binding front 
) [inline, static]

static void find_class_binding_level (  )  [static]

Definition at line 748 of file decl.c.

References class_binding_level, and current_binding_level.

tree finish_case_label ( tree  low_value,
tree  high_value 
)

static void finish_constructor_body ( void   )  [static]

Definition at line 14731 of file decl.c.

void finish_decl ( tree  decl,
tree  init,
tree  asmspec_tree 
)

Definition at line 9030 of file decl.c.

References cp_finish_decl().

static void finish_destructor_body ( void   )  [static]

void finish_enum ( tree  enumtype  ) 

tree finish_function ( int  flags  ) 

void finish_function_body ( tree  compstmt  ) 

tree finish_method ( tree  decl  ) 

void finish_scope ( void   ) 

Definition at line 1115 of file decl.c.

References poplevel().

void finish_stmt ( void   ) 

Definition at line 15327 of file decl.c.

References last_expr_type, and NULL_TREE.

void fixup_anonymous_aggr ( tree  t  ) 

static tree follow_tag_typedef ( tree  type  )  [static]

static tree get_atexit_node ( void   )  [static]

static tree get_dso_handle_node ( void   )  [static]

Definition at line 9131 of file decl.c.

References declare_global_var(), dso_handle_node, get_identifier(), and ptr_type_node.

tree getdecls ( void   ) 

Definition at line 5567 of file decl.c.

References current_binding_level.

int global_bindings_p ( void   ) 

Definition at line 857 of file decl.c.

References current_binding_level, and global_scope_p.

int grok_ctor_properties ( tree  ctype,
tree  decl 
)

Definition at line 13049 of file decl.c.

References copy_fn_p(), DECL_NAME, error(), and SET_IDENTIFIER_ERROR_LOCUS.

void grok_op_properties ( tree  decl,
int  friendp 
)

static tree grok_reference_init ( tree  decl,
tree  type,
tree  init,
tree cleanup 
) [static]

void grok_special_member_properties ( tree  decl  ) 

tree grokdeclarator ( tree  declarator,
tree  declspecs,
enum decl_context decl_context  ,
int  initialized,
tree attrlist 
)

Definition at line 10400 of file decl.c.

References abort, add_defarg_fn(), ANON_AGGR_TYPE_P, ansi_opname, arg_types, args, ATTR_FLAG_ARRAY_NEXT, ATTR_FLAG_DECL_NEXT, ATTR_FLAG_FUNCTION_NEXT, attributes, b, bad_specifiers(), BASELINK_FUNCTIONS, BITFIELD, build_complex_type(), build_cplus_array_type(), build_cplus_method_type(), build_decl, build_decl_attribute_variant(), build_function_type(), build_lang_decl(), build_pointer_type(), build_ptrmem_type(), build_ptrmemfunc_type(), build_qualified_type(), build_reference_type(), c_apply_type_quals_to_decl(), c_common_unsigned_type(), C_IS_RESERVED_WORD, C_TYPEDEF_EXPLICITLY_SIGNED, CALL_DECLARATOR_EXCEPTION_SPEC, CALL_DECLARATOR_PARMS, CALL_DECLARATOR_QUALS, CATCHPARM, chainon(), char_type_node, check_explicit_specialization(), check_special_function_return_type(), check_static_variable_definition(), CLASS_TYPE_P, CLASSTYPE_TEMPLATE_INFO, CLASSTYPE_TEMPLATE_INSTANTIATION, CLASSTYPE_TI_ARGS, CLASSTYPE_TI_TEMPLATE, complete_type(), COMPLETE_TYPE_P, complex_double_type_node, complex_float_type_node, complex_integer_type_node, complex_long_double_type_node, constructor_name(), constructor_name_p(), copy_node, cp_build_parm_decl(), cp_build_qualified_type, cp_build_qualified_type_real(), cp_deprecated, cp_error_at(), cp_type_quals(), create_array_type_for_decl(), current_aggr, current_binding_level, current_class_depth, current_class_name, current_class_type, current_function_decl, current_lang_name, current_namespace, current_template_args(), current_template_parms, cxx_incomplete_type_error, DECL_ARTIFICIAL, DECL_ATTRIBUTES, decl_attributes(), DECL_CONSTRUCTOR_P, DECL_CONTEXT, DECL_EXTERNAL, decl_function_context(), DECL_MUTABLE_P, DECL_NAME, DECL_NONADDRESSABLE_P, DECL_NONCONVERTING_P, DECL_REGISTER, DECL_THIS_EXTERN, DECL_THIS_STATIC, decl_type_access_control(), decls, DEPRECATED_SUPPRESS, do_friend(), double_type_node, DTOR_FLAG, error(), error_mark_node, FIELD, finish_decl(), flag_ms_extensions, flag_pedantic_errors, flag_signed_bitfields, flags, float_type_node, FROB_CONTEXT, FUNCDEF, FUNCTION_FIRST_USER_PARMTYPE, get_first_fn(), global_namespace, grok_method_quals(), grokfndecl(), grokparms(), grokvardecl(), i, IDENTIFIER_CLASS_VALUE, IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_HAS_TYPE_VALUE, IDENTIFIER_OPNAME_P, IDENTIFIER_POINTER, IDENTIFIER_TEMPLATE, IDENTIFIER_TYPE_VALUE, IDENTIFIER_TYPENAME_P, IMPLICIT_TYPENAME_P, in_system_header, int, integer_type_node, integer_zero_node, is_aggr_type(), IS_AGGR_TYPE_CODE, is_overloaded_fn(), lang_name_java, long_double_type_node, long_integer_type_node, long_long_integer_type_node, long_long_unsigned_type_node, long_unsigned_type_node, lookup_name(), lookup_tag_reverse(), MAIN_NAME_P, make_anon_name(), make_friend_class(), member_function_or_else(), memcpy, MEMFUNCDEF, my_friendly_assert, next, NO_SPECIAL, NORMAL, nreverse(), NULL, NULL_TREE, ok(), PARM, parmlist_is_exprlist(), pedantic, pedwarn(), pop_decl_namespace(), pop_nested_class(), PRIMARY_TEMPLATE_P, processing_template_decl, rename(), RID_AUTO, RID_BOOL, RID_CHAR, RID_COMPLEX, RID_CONST, RID_EXPLICIT, RID_EXTERN, RID_FIRST_MODIFIER, RID_FRIEND, RID_INLINE, RID_INT, RID_LAST_MODIFIER, RID_LONG, RID_MUTABLE, RID_REGISTER, RID_RESTRICT, RID_SHORT, RID_SIGNED, RID_STATIC, RID_THREAD, RID_TYPEDEF, RID_UNSIGNED, RID_VIRTUAL, RID_VOLATILE, RID_WCHAR, RIDBIT_ANY_SET, RIDBIT_NOTSETP, RIDBIT_RESET, RIDBIT_RESET_ALL, RIDBIT_SET, RIDBIT_SETP, ridpointers, same_type_p, sfk_constructor, sfk_conversion, sfk_destructor, sfk_none, short_integer_type_node, short_unsigned_type_node, signed_char_type_node, size, start_decl(), staticp, template_class_depth(), tf_error, tf_ignore_bad_quals, tf_warning, tmp, toplevel_bindings_p(), TREE_CHAIN, TREE_CODE, TREE_COMPLEXITY, tree_cons, TREE_DEPRECATED, TREE_OPERAND, TREE_OVERFLOW, TREE_PUBLIC, TREE_PURPOSE, TREE_STATIC, TREE_TYPE, TREE_USED, TREE_VALUE, tsubst(), TYPE_ANONYMOUS_P, TYPE_ARG_TYPES, TYPE_CONTEXT, TYPE_DOMAIN, TYPE_FOR_JAVA, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_CONVERSION, TYPE_IDENTIFIER, TYPE_LANG_SPECIFIC, TYPE_MAIN_DECL, TYPE_MAIN_VARIANT, TYPE_METHOD_BASETYPE, TYPE_NAME, TYPE_NEXT_VARIANT, TYPE_QUAL_CONST, TYPE_QUAL_RESTRICT, TYPE_QUAL_VOLATILE, TYPE_SIZE, TYPE_UNQUALIFIED, TYPE_WAS_ANONYMOUS, TYPENAME, TYPENAME_FLAG, TYPENAME_TYPE_FULLNAME, UNIQUELY_DERIVED_FROM_P, unsigned_char_type_node, unsigned_type_node, uses_template_parms(), variably_modified_type_p(), void_list_node, void_type_node, VOID_TYPE_P, warn_deprecated_use(), warn_long_long, warn_return_type, warning, and wchar_type_node.

static tree grokfndecl ( tree  ctype,
tree  type,
tree  declarator,
tree  orig_declarator,
int  virtualp,
enum overload_flags  flags,
tree  quals,
tree  raises,
int  check,
int  friendp,
int  publicp,
int  inlinep,
int  funcdef_flag,
int  template_count,
tree  in_namespace 
) [static]

static tree grokparms ( tree  first_parm  )  [static]

tree groktypename ( tree  typename  ) 

static tree grokvardecl ( tree  type,
tree  name,
RID_BIT_TYPE specbits_in,
int  initialized,
int  constp,
tree  scope 
) [static]

static GTY ( (param_is(union tree_node))   )  [static]

static GTY ( (deletable(""))   )  [static]

Definition at line 297 of file decl.c.

References ggc_alloc.

static GTY ( ()   )  [static]

Definition at line 205 of file decl.c.

References next.

tree identifier_global_value ( tree  t  ) 

Definition at line 15417 of file decl.c.

References IDENTIFIER_GLOBAL_VALUE.

tree identifier_type_value ( tree  id  ) 

tree implicitly_declare ( tree  functionid  ) 

static void initialize_local_var ( tree  decl,
tree  init 
) [static]

static void initialize_predefined_identifiers ( void   )  [static]

static struct cp_binding_level* innermost_nonclass_level ( void   )  [static, read]

Definition at line 865 of file decl.c.

References b, and current_binding_level.

bool innermost_scope_is_class_p ( void   ) 

Definition at line 928 of file decl.c.

References current_binding_level.

Referenced by maybe_note_name_used_in_class().

void insert_block ( tree  block  ) 

Definition at line 1859 of file decl.c.

References chainon(), current_binding_level, and TREE_USED.

void keep_next_level ( int  keep  ) 

Definition at line 907 of file decl.c.

int kept_level_p ( void   ) 

Definition at line 916 of file decl.c.

References current_binding_level, NULL, and NULL_TREE.

static void layout_var_decl ( tree  decl  )  [static]

int local_variable_p ( tree  t  ) 

Definition at line 12683 of file decl.c.

References CP_DECL_CONTEXT, DECL_NAMESPACE_SCOPE_P, TREE_CODE, and TYPE_P.

static tree local_variable_p_walkfn ( tree tp,
walk_subtrees  ,
data   
) [static]

Definition at line 12715 of file decl.c.

References DECL_ARTIFICIAL, local_variable_p(), and NULL_TREE.

static int lookup_flags ( int  prefer_type,
int  namespaces_only 
) [static]

Definition at line 6277 of file decl.c.

References LOOKUP_PREFER_BOTH, LOOKUP_PREFER_NAMESPACES, and LOOKUP_PREFER_TYPES.

tree lookup_function_nonclass ( tree  name,
tree  args 
)

Definition at line 6639 of file decl.c.

References lookup_arg_dependent(), and lookup_name_nonclass().

tree lookup_label ( tree  id  ) 

tree lookup_name ( tree  name,
int  prefer_type 
)

Definition at line 6655 of file decl.c.

References lookup_name_real().

tree lookup_name_current_level ( tree  name  ) 

tree lookup_name_namespace_only ( tree  name  ) 

Definition at line 6647 of file decl.c.

References lookup_name_real().

tree lookup_name_nonclass ( tree  name  ) 

Definition at line 6632 of file decl.c.

References lookup_name_real().

static tree lookup_name_real ( tree  name,
int  prefer_type,
int  nonclass,
int  namespaces_only 
) [static]

tree lookup_namespace_name ( tree  namespace,
tree  name 
)

static tree lookup_tag ( enum tree_code  form,
tree  name,
struct cp_binding_level *  binding_level,
int  thislevel_only 
) [static]

static tree lookup_tag_reverse ( tree  type,
tree  name 
) [static]

tree lookup_type_current_level ( tree  name  ) 

tree make_anon_name ( void   ) 

Definition at line 3109 of file decl.c.

References ANON_AGGRNAME_FORMAT, anon_cnt, buf, get_identifier(), and sprintf().

static struct cp_binding_level* make_binding_level ( void   )  [static, read]

Definition at line 848 of file decl.c.

References ggc_alloc.

static tree make_label_decl ( tree  id,
int  local_p 
) [static]

static void make_rtl_for_nonlocal_decl ( tree  decl,
tree  init,
const char *  asmspec 
) [static]

tree make_typename_type ( tree  context,
tree  name,
tsubst_flags_t  complain 
)

tree make_unbound_class_template ( tree  context,
tree  name,
tsubst_flags_t  complain 
)

static void maybe_commonize_var ( tree  decl  )  [static]

static void maybe_deduce_size_from_array_init ( tree  decl,
tree  init 
) [static]

void maybe_inject_for_scope_var ( tree  decl  ) 

static tree maybe_process_template_type_declaration ( tree  type,
int  globalize,
struct cp_binding_level*  b 
) [static]

void maybe_push_cleanup_level ( tree  type  ) 

tree maybe_push_decl ( tree  decl  ) 

void maybe_push_to_top_level ( int  pseudo  ) 

void maybe_register_incomplete_var ( tree  var  ) 

static int member_function_or_else ( tree  ctype,
tree  cur_type,
enum overload_flags  flags 
) [static]

Definition at line 9504 of file decl.c.

References DTOR_FLAG, and error().

tree namespace_binding ( tree  name,
tree  scope 
)

Definition at line 2420 of file decl.c.

References b, cxx_scope_find_binding_for_name(), global_namespace, and NULL_TREE.

int namespace_bindings_p ( void   ) 

Definition at line 895 of file decl.c.

References b, and innermost_nonclass_level().

static tree next_initializable_field ( tree  field  )  [static]

Definition at line 8176 of file decl.c.

References DECL_ARTIFICIAL, DECL_C_BIT_FIELD, DECL_NAME, TREE_CHAIN, and TREE_CODE.

int nonstatic_local_decl_p ( tree  t  ) 

Definition at line 12703 of file decl.c.

References local_variable_p(), TREE_CODE, and TREE_STATIC.

void note_level_for_catch (  ) 

Definition at line 1137 of file decl.c.

References current_binding_level.

void note_level_for_for (  ) 

Definition at line 1121 of file decl.c.

References current_binding_level.

void note_level_for_try (  ) 

Definition at line 1129 of file decl.c.

References current_binding_level.

static tree push_cp_library_fn PARAMS ( (enum tree_code, tree  )  [static]

static tree check_special_function_return_type PARAMS ( (special_function_kind, tree, tree  )  [static]

static tree create_array_type_for_decl PARAMS ( (tree, tree, tree  )  [static]

static void make_rtl_for_nonlocal_decl PARAMS ( (tree, tree, const char *)   )  [static]

static void check_previous_goto PARAMS ( (struct named_label_use_list *)   )  [static]

static void check_previous_goto_1 PARAMS ( (tree, struct cp_binding_level *, tree, const char *, int)   )  [static]

static void add_decl_to_level PARAMS ( (tree, struct cp_binding_level *)   )  [static]

static int walk_globals_r PARAMS ( (tree, void *)   )  [static]

static int walk_namespaces_r PARAMS ( (tree, walk_namespaces_fn, void *)   )  [static]

static const char* tag_name PARAMS ( (enum tag_types code  )  [static]

static tree record_builtin_java_type PARAMS ( (const char *, int)   )  [static]

static tree qualify_lookup PARAMS ( (tree, int)   )  [static]

static int lookup_flags PARAMS ( (int, int)   )  [static]

static tree local_variable_p_walkfn PARAMS ( (tree *, int *, void *)   )  [static]

static int typename_compare PARAMS ( (const void *, const void *)   )  [static]

static hashval_t typename_hash PARAMS ( (const void *)   )  [static]

static tree maybe_process_template_type_declaration PARAMS ( (tree, int, struct cp_binding_level *)   )  [static]

static void bad_specifiers PARAMS ( (tree, const char *, int, int, int, int, int)   )  [static]

static int member_function_or_else PARAMS ( (tree, tree, enum overload_flags  )  [static]

static tree build_library_fn_1 PARAMS ( (tree, enum tree_code, tree  )  [static]

static tree builtin_function_1 PARAMS ( (const char *, tree, tree, int, enum built_in_class, const char *, tree  )  [static]

static void record_unknown_type PARAMS ( (tree, const char *)   )  [static]

static void set_identifier_type_value_with_scope PARAMS ( (tree, tree, struct cp_binding_level *)   )  [static]

static tree lookup_tag PARAMS ( (enum tree_code, tree, struct cp_binding_level *, int)   )  [static]

static tree grokvardecl PARAMS ( (tree, tree, RID_BIT_TYPE *, int, int, tree  )  [static]

static tree grokfndecl PARAMS ( (tree, tree, tree, tree, int, enum overload_flags, tree, tree, int, int, int, int, int, int, tree  )  [static]

static tree grok_reference_init PARAMS ( (tree, tree, tree, tree *)   )  [static]

static tree lookup_name_real PARAMS ( (tree, int, int, int)   )  [static]

static int ambi_op_p PARAMS ( (enum tree_code  )  [static]

static void resume_binding_level PARAMS ( (struct cp_binding_level *)   )  [static]

static void pop_binding_level PARAMS ( (void  )  [static, read]

Definition at line 77 of file cplus-dem.c.

static void push_binding_level PARAMS ( (struct cp_binding_level *, int, int)   )  [static]

static const char* redeclaration_error_message PARAMS ( (tree, tree  )  [static]

static tree grokparms PARAMS ( (tree  )  [static]

int parmlist_is_exprlist ( tree  exprs  ) 

Definition at line 12636 of file decl.c.

References NULL_TREE, toplevel_bindings_p(), TREE_CHAIN, TREE_CODE, TREE_PARMLIST, and TREE_VALUE.

static void pop_binding ( tree  id,
tree  decl 
) [static]

static void pop_binding_level (  )  [static]

void pop_everything ( void   ) 

void pop_from_top_level ( void   ) 

static void pop_label ( tree  label,
tree  old_value 
) [static]

static void pop_labels ( tree  block  )  [static]

Definition at line 1483 of file decl.c.

References BLOCK_VARS, named_labels, NULL, pop_label(), and TREE_CHAIN.

void pop_namespace ( void   ) 

void pop_nested_namespace ( tree  ns  ) 

void pop_switch ( void   ) 

Definition at line 5499 of file decl.c.

References cp_switch::cases, cs, free(), c_switch::next, splay_tree_delete(), and switch_stack.

tree poplevel ( int  keep,
int  reverse,
int  functionbody 
)

void poplevel_class ( void   ) 

void print_binding_level ( struct cp_binding_level *  lvl  ) 

void print_binding_stack ( void   ) 

void print_other_binding_stack ( struct cp_binding_level *  stack  ) 

Definition at line 2301 of file decl.c.

References fprintf(), global_scope_p, HOST_PTR_PRINTF, and print_binding_level().

static void push_binding_level ( struct cp_binding_level *  newlevel,
int  tag_transparent,
int  keep 
) [static]

int push_class_binding ( tree  id,
tree  decl 
)

bool push_class_level_binding ( tree  name,
tree  x 
)

static tree push_cp_library_fn ( enum tree_code  operator_code,
tree  type 
) [static]

Definition at line 7349 of file decl.c.

References ansi_opname, build_cp_library_fn(), and pushdecl().

tree push_library_fn ( tree  name,
tree  type 
)

Definition at line 7337 of file decl.c.

References build_library_fn(), and pushdecl_top_level().

void push_local_binding ( tree  id,
tree  decl,
int  flags 
)

static void push_local_name ( tree  decl  )  [static]

void push_namespace ( tree  name  ) 

void push_nested_namespace ( tree  ns  ) 

tree push_overloaded_decl ( tree  decl,
int  flags 
)

void push_switch ( tree  switch_stmt  ) 

tree push_throw_library_fn ( tree  name,
tree  type 
)

Definition at line 7375 of file decl.c.

References push_library_fn(), TREE_NOTHROW, and TREE_THIS_VOLATILE.

void push_to_top_level ( void   ) 

Definition at line 2710 of file decl.c.

References maybe_push_to_top_level().

tree push_using_decl ( tree  scope,
tree  name 
)

tree push_using_directive ( tree  used  ) 

tree push_void_library_fn ( tree  name,
tree  parmtypes 
)

Definition at line 7364 of file decl.c.

References build_function_type(), push_library_fn(), and void_type_node.

tree pushdecl ( tree  x  ) 

Definition at line 4077 of file decl.c.

References abort, add_decl_to_level(), b, build_type_copy(), cfun, check_default_args(), check_template_shadow(), CP_DECL_CONTEXT, cp_error_at(), cp_pedwarn_at(), cp_warning_at(), current_binding_level, current_class_ptr, current_function_decl, d, DECL_ABSTRACT_ORIGIN, DECL_ARTIFICIAL, DECL_CONTEXT, DECL_DEAD_FOR_LOCAL, DECL_EXTERN_C_FUNCTION_P, DECL_EXTERNAL, DECL_FROM_INLINE, DECL_FUNCTION_MEMBER_P, DECL_FUNCTION_TEMPLATE_P, DECL_IN_SYSTEM_HEADER, DECL_INITIAL, DECL_LANG_SPECIFIC, DECL_LOCAL_FUNCTION_P, DECL_MAIN_P, DECL_NAME, DECL_NAMESPACE_SCOPE_P, DECL_NON_THUNK_FUNCTION_P, DECL_ORIGINAL_TYPE, DECL_P, DECL_SHADOWED_FOR_VAR, DECL_SOURCE_LINE, DECL_TEMPLATE_PARM_P, decls_match(), doing_semantic_analysis_p, duplicate_decls(), err, error(), error_mark_node, IDENTIFIER_CLASS_VALUE, IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_IMPLICIT_DECL, IDENTIFIER_NAMESPACE_VALUE, IDENTIFIER_POINTER, IDENTIFIER_VALUE, integer_type_node, is_overloaded_fn(), lang_c, lookup_name_current_level(), maybe_register_incomplete_var(), my_friendly_assert, namespace_binding(), namespace_bindings_p(), NAMESPACE_LEVEL, NULL_TREE, OVL_CURRENT, OVL_FUNCTION, OVL_NEXT, pedantic, pedwarn(), POP_TIMEVAR_AND_RETURN, PUSH_GLOBAL, PUSH_LOCAL, push_local_binding(), push_overloaded_decl(), retrofit_lang_decl(), same_type_p, SET_DECL_LANGUAGE, SET_IDENTIFIER_NAMESPACE_VALUE, SET_IDENTIFIER_TYPE_VALUE, set_identifier_type_value_with_scope(), shadow_warning(), timevar_push, TREE_ADDRESSABLE, TREE_CODE, TREE_OPERAND, TREE_PUBLIC, TREE_STATIC, TREE_TYPE, TREE_USED, TYPE_IDENTIFIER, TYPE_NAME, TYPE_STUB_DECL, warn_extern_redeclared_static(), warn_shadow, warning, and wchar_decl_node.

bool pushdecl_class_level ( tree  x  ) 

tree pushdecl_namespace_level ( tree  x  ) 

tree pushdecl_top_level ( tree  x  ) 

Definition at line 4618 of file decl.c.

References NULL, and pushdecl_top_level_1().

static tree pushdecl_top_level_1 ( tree  x,
tree init 
) [static]

tree pushdecl_top_level_and_finish ( tree  x,
tree  init 
)

Definition at line 4628 of file decl.c.

References pushdecl_top_level_1().

static tree pushdecl_with_scope ( tree  x,
struct cp_binding_level *  level 
) [static]

void pushlevel ( int  tag_transparent  ) 

void pushlevel_class ( void   ) 

void pushtag ( tree  name,
tree  type,
int  globalize 
)

static tree qualify_lookup ( tree  val,
int  flags 
) [static]

static tree record_builtin_java_type ( char *  name,
int  size 
) const [static]

void record_builtin_type ( enum rid  rid_index,
const char *  name,
tree  type 
)

static void record_unknown_type ( tree  type,
const char *  name 
) [static]

static const char* redeclaration_error_message ( tree  newdecl,
tree  olddecl 
) [static]

void register_dtor_fn ( tree  decl  ) 

static void require_complete_types_for_parms ( tree  parms  )  [static]

static tree reshape_init ( tree  type,
tree initp 
) [static]

static void resume_binding_level ( struct cp_binding_level *  b  )  [static]

void revert_static_member_fn ( tree  decl  ) 

static void save_function_data ( tree  decl  )  [static]

static tree select_decl ( cxx_binding binding,
int  flags 
) [static]

void set_block ( block   ) 

Definition at line 1871 of file decl.c.

References cfun, doing_semantic_analysis_p, and my_friendly_assert.

void set_class_shadows ( tree  shadows  ) 

Definition at line 1038 of file decl.c.

References class_binding_level.

void set_identifier_type_value ( tree  id,
tree  type 
)

Definition at line 2789 of file decl.c.

References current_binding_level, and set_identifier_type_value_with_scope().

static void set_identifier_type_value_with_scope ( tree  id,
tree  type,
struct cp_binding_level *  b 
) [static]

void set_namespace_binding ( tree  name,
tree  scope,
tree  val 
)

Definition at line 2431 of file decl.c.

References b, binding_for_name(), BINDING_VALUE, global_namespace, NULL_TREE, timevar_pop, and timevar_push.

void shadow_tag ( tree  declspecs  ) 

static tree start_cleanup_fn ( void   )  [static]

tree start_decl ( tree  declarator,
tree  declspecs,
int  initialized,
tree  attributes,
tree  prefix_attributes 
)

void start_decl_1 ( tree  decl  ) 

tree start_enum ( tree  name  ) 

int start_function ( tree  declspecs,
tree  declarator,
tree  attrs,
int  flags 
)

Definition at line 14242 of file decl.c.

References abort, adjust_clone_args(), announce_function(), begin_stmt_tree(), bl, build_cplus_method_type(), build_decl, build_function_type(), build_indirect_ref(), build_tree_list, build_type_variant, c_apply_type_quals_to_decl(), c_promoting_integer_type_p(), cfun, check_default_args(), check_function_type(), CLASS_TYPE_P, CLASSTYPE_GOT_SEMICOLON, comdat_linkage(), cp_function_chain, cp_type_quals(), cp_warning_at(), cplus_decl_attributes(), current_binding_level, current_function_decl, current_function_parms, current_in_charge_parm, current_vtt_parm, DECL_ARGUMENTS, DECL_CONTEXT, DECL_DECLARED_INLINE_P, DECL_DEFER_OUTPUT, DECL_DESTRUCTOR_P, DECL_EXTERNAL, DECL_FRIEND_CONTEXT, DECL_FRIEND_P, decl_function_context(), DECL_FUNCTION_MEMBER_P, DECL_HAS_IN_CHARGE_PARM_P, DECL_HAS_VTT_PARM_P, DECL_INITIAL, DECL_INTERFACE_KNOWN, DECL_MAIN_P, DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, DECL_NAME, DECL_NOT_REALLY_EXTERN, DECL_OVERLOADED_OPERATOR_P, DECL_PENDING_INLINE_P, DECL_RESULT, DECL_SAVED_FUNCTION_DATA, DECL_SAVED_TREE, DECL_STATIC_FUNCTION_P, DECL_TEMPLATE_INFO, DECL_TEMPLATE_INSTANTIATION, DECL_TEMPLATE_SPECIALIZATION, DECL_TI_TEMPLATE, DECL_VINDEX, default_function_type, dtor_label, error(), error_mark_node, flag_alt_external_templates, flag_implement_inlines, FUNCDEF, get_identifier(), global_scope_p, grokdeclarator(), IDENTIFIER_IMPLICIT_DECL, immediate_size_expand, init_function_start(), input_filename, integer_type_node, interface_only, interface_unknown, lineno, lookup_attribute(), maybe_apply_pragma_weak(), maybe_begin_member_template_processing(), maybe_make_one_only(), my_friendly_assert, NULL, NULL_TREE, pedantic, pedwarn(), processing_template_decl, push_nested_class(), push_template_decl(), pushdecl(), pushlevel(), revert_static_member_fn(), SF_INCLASS_INLINE, SF_PRE_PARSED, shadow_tag(), start_fname_decls(), store_parm_decls(), TREE_CHAIN, TREE_CODE, tree_cons, TREE_PUBLIC, TREE_READONLY, TREE_SIDE_EFFECTS, TREE_STATIC, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_MAIN_VARIANT, TYPE_METHOD_BASETYPE, type_promotes_to(), void_list_node, vtt_parm_identifier, warn_ecpp, warn_implicit, warn_return_type, and warning.

tree start_handler_parms ( tree  declspecs,
tree  declarator 
)

Definition at line 9383 of file decl.c.

References CATCHPARM, error(), grokdeclarator(), NULL, and NULL_TREE.

tree start_method ( tree  declspecs,
tree  declarator,
tree  attrlist 
)

static cxx_saved_binding * store_bindings ( tree  names,
cxx_saved_binding old_bindings 
) [static]

static void store_parm_decls ( tree  current_function_parms  )  [static]

static void storedecls ( tree  decls  )  [static]

Definition at line 5577 of file decl.c.

References current_binding_level.

static void suspend_binding_level (  )  [static]

static const char* tag_name ( enum tag_types  code  )  [static]

Definition at line 13439 of file decl.c.

References abort, class_type, enum_type, record_type, and union_type.

int template_parm_scope_p ( void   ) 

Definition at line 943 of file decl.c.

References current_binding_level.

int toplevel_bindings_p ( void   ) 

Definition at line 883 of file decl.c.

References b, and innermost_nonclass_level().

static int typename_compare ( void k1,
const void k2 
) const [static]

Definition at line 5891 of file decl.c.

References d1, d2, DECL_NAME, NULL_TREE, same_type_p, t1, t2, TREE_TYPE, TYPE_CONTEXT, TYPE_NAME, and TYPENAME_TYPE_FULLNAME.

static hashval_t typename_hash ( void k  )  const [static]

Definition at line 5876 of file decl.c.

References DECL_NAME, htab_hash_pointer, TYPE_CONTEXT, and TYPE_NAME.

static int unary_op_p ( enum tree_code  code  )  [static]

Definition at line 13097 of file decl.c.

tree unqualified_namespace_lookup ( tree  name,
int  flags,
tree spacesp 
)

static void use_label ( tree  decl  )  [static]

Definition at line 5131 of file decl.c.

References current_binding_level, ggc_alloc, input_filename, lineno, named_label_uses, and NULL.

int vtable_decl_p ( tree  t,
data   
)

Definition at line 2002 of file decl.c.

References DECL_VIRTUAL_P, and TREE_CODE.

int vtype_decl_p ( tree  t,
data   
)

Definition at line 2013 of file decl.c.

References TREE_CODE, TREE_TYPE, and TYPE_POLYMORPHIC_P.

int walk_globals ( walk_globals_pred  p,
walk_globals_fn  f,
void data 
)

static int walk_globals_r ( tree  namespace,
void data 
) [static]

int walk_namespaces ( walk_namespaces_fn  f,
void data 
)

Definition at line 2099 of file decl.c.

References global_namespace, and walk_namespaces_r().

static int walk_namespaces_r ( tree  namespace,
walk_namespaces_fn  f,
void data 
) [static]

Definition at line 2079 of file decl.c.

References NAMESPACE_LEVEL, result, TREE_CHAIN, and walk_namespaces_r().

int walk_vtables ( walk_globals_pred  p,
walk_globals_fn  f,
void data 
)

static int walk_vtables_r ( tree  namespace,
void data 
) [static]

Definition at line 2042 of file decl.c.

References d, walk_globals_data::data, walk_globals_data::f, f, NAMESPACE_LEVEL, result, and TREE_CHAIN.

static void warn_about_implicit_typename_lookup ( tree  typename,
tree  binding 
) [static]

static void warn_extern_redeclared_static ( tree  newdecl,
tree  olddecl 
) [static]

int wrapup_globals_for_namespace ( tree  namespace,
void data 
)

void xref_basetypes ( tree  ref,
tree  binfo 
)

tree xref_tag ( enum tag_types  tag_code,
tree  name,
tree  attributes,
bool  globalize 
)

tree xref_tag_from_type ( tree  old,
tree  id,
int  globalize 
)


Variable Documentation

Definition at line 284 of file decl.c.

Referenced by add_implicitly_declared_members().

int anon_cnt = 0 [static]

Definition at line 3103 of file decl.c.

Definition at line 262 of file decl.c.

tree cp_global_trees[CPTI_MAX]

Definition at line 200 of file decl.c.

enum deprecated_states deprecated_state = DEPRECATED_NORMAL [static]

Definition at line 279 of file decl.c.

Definition at line 153 of file decl.c.

Definition at line 267 of file decl.c.

Definition at line 288 of file decl.c.

Definition at line 237 of file decl.c.

Definition at line 237 of file decl.c.

Definition at line 240 of file decl.c.

int no_print_builtins = 0 [static]

Definition at line 2186 of file decl.c.

int no_print_functions = 0 [static]

Definition at line 2185 of file decl.c.

struct saved_scope* scope_chain

Definition at line 2596 of file decl.c.

Definition at line 231 of file decl.c.

Definition at line 5480 of file decl.c.


Generated on Wed Apr 8 15:28:30 2009 for Open64 by  doxygen 1.5.6