osprey-gcc/gcc/cp/decl.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.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 "output.h"
#include "except.h"
#include "toplev.h"
#include "hashtab.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 "tree-flow.h"
#include "operators.def"
#include "gt-cp-decl.h"

Include dependency graph for decl.c:

Go to the source code of this file.

Data Types

type  cp_switch
type  typename_info
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 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 (cp_parameter_declarator *, tree *)
static const char * redeclaration_error_message (tree, tree)
static int decl_jump_unsafe (tree)
static void require_complete_types_for_parms (tree)
static int ambi_op_p (enum tree_code)
static int unary_op_p (enum tree_code)
static void push_local_name (tree)
static tree grok_reference_init (tree, tree, tree, tree *)
static tree grokvardecl (tree, tree, const cp_decl_specifier_seq *, int, int, tree)
static void record_unknown_type (tree, const char *)
static tree builtin_function_1 (const char *, tree, tree, enum built_in_function code, enum built_in_class cl, const char *, tree)
static tree build_library_fn_1 (tree, enum tree_code, tree)
static int member_function_or_else (tree, tree, enum overload_flags)
static void bad_specifiers (tree, const char *, int, int, int, int, int)
static void check_for_uninitialized_const_var (tree)
static hashval_t typename_hash (const void *)
static int typename_compare (const void *, const void *)
static tree local_variable_p_walkfn (tree *, int *, void *)
static tree record_builtin_java_type (const char *, int)
static const char * tag_name (enum tag_types)
static tree lookup_and_check_tag (enum tag_types, tree, tag_scope, bool)
static int walk_namespaces_r (tree, walk_namespaces_fn, void *)
static tree make_label_decl (tree, int)
static void use_label (tree)
static void check_previous_goto_1 (tree, struct cp_binding_level *, tree, const location_t *)
static void check_previous_goto (struct named_label_use_list *)
static void check_switch_goto (struct cp_binding_level *)
static void check_previous_gotos (tree)
static void pop_label (tree, tree)
static void pop_labels (tree)
static void maybe_deduce_size_from_array_init (tree, tree)
static void layout_var_decl (tree)
static void maybe_commonize_var (tree)
static tree check_initializer (tree, tree, int, tree *)
static void make_rtl_for_nonlocal_decl (tree, tree, const char *)
static void save_function_data (tree)
static void check_function_type (tree, tree)
static void finish_constructor_body (void)
static void begin_destructor_body (void)
static void finish_destructor_body (void)
static tree create_array_type_for_decl (tree, tree, tree)
static tree get_atexit_node (void)
static tree get_dso_handle_node (void)
static tree start_cleanup_fn (void)
static void end_cleanup_fn (void)
static tree cp_make_fname_decl (tree, int)
static void initialize_predefined_identifiers (void)
static tree check_special_function_return_type (special_function_kind, tree, tree)
static tree push_cp_library_fn (enum tree_code, tree)
static tree build_cp_library_fn (tree, enum tree_code, tree)
static void store_parm_decls (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 *)
struct named_label_use_list GTY (())
void finish_scope (void)
voidobjc_get_current_scope (void)
void objc_mark_locals_volatile (void *enclosing_blk)
tree poplevel (int keep, int reverse, int functionbody)
void insert_block (tree block)
int walk_namespaces (walk_namespaces_fn f, void *data)
int wrapup_globals_for_namespace (tree namespace, void *data)
tree create_implicit_typedef (tree name, tree type)
int decls_match (tree newdecl, tree olddecl)
void warn_extern_redeclared_static (tree newdecl, tree olddecl)
tree duplicate_decls (tree newdecl, tree olddecl)
tree lookup_label (tree id)
tree declare_local_label (tree id)
void check_goto (tree decl)
tree define_label (location_t location, tree name)
void push_switch (tree switch_stmt)
void pop_switch (void)
tree finish_case_label (tree low_value, tree high_value)
static GTY ((param_is(union tree_node)))
tree make_typename_type (tree context, tree name, enum tag_types tag_type, tsubst_flags_t complain)
tree make_unbound_class_template (tree context, tree name, tree parm_list, tsubst_flags_t complain)
void record_builtin_type (enum rid rid_index, const char *name, tree type)
void cxx_init_decl_processing (void)
tree cp_fname_init (const char *name, tree *type_p)
tree builtin_function (const char *name, tree type, int code, enum built_in_class cl, const char *libname, tree attrs)
tree build_library_fn (tree name, tree type)
tree build_library_fn_ptr (const char *name, tree type)
tree build_cp_library_fn_ptr (const char *name, tree type)
tree push_library_fn (tree name, tree type)
tree push_void_library_fn (tree name, tree parmtypes)
tree push_throw_library_fn (tree name, tree type)
void fixup_anonymous_aggr (tree t)
tree check_tag_decl (cp_decl_specifier_seq *declspecs)
tree shadow_tag (cp_decl_specifier_seq *declspecs)
tree groktypename (cp_decl_specifier_seq *type_specifiers, const cp_declarator *declarator)
tree start_decl (const cp_declarator *declarator, cp_decl_specifier_seq *declspecs, int initialized, tree attributes, tree prefix_attributes, tree *pushed_scope_p)
void start_decl_1 (tree decl)
static bool reshape_init_array (tree elt_type, tree max_index, tree *initp, tree new_init)
void initialize_artificial_var (tree decl, tree init)
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)
tree register_dtor_fn (tree decl)
int cp_complete_array_type (tree *ptype, tree initial_value, bool do_default)
static tree grokfndecl (tree ctype, tree type, tree declarator, tree parms, tree orig_declarator, int virtualp, enum overload_flags flags, cp_cv_quals quals, tree raises, int check, int friendp, int publicp, int inlinep, special_function_kind sfk, int funcdef_flag, int template_count, tree in_namespace, tree *attrlist)
static void set_linkage_for_static_data_member (tree decl)
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)
tree get_scope_of_declarator (const cp_declarator *declarator)
tree check_var_type (tree identifier, tree type)
tree grokdeclarator (const cp_declarator *declarator, const cp_decl_specifier_seq *declspecs, enum decl_context decl_context, int initialized, tree *attrlist)
int local_variable_p (tree t)
int nonstatic_local_decl_p (tree t)
static tree local_variable_p_walkfn (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
tree check_default_argument (tree decl, tree arg)
int copy_fn_p (tree d)
void grok_special_member_properties (tree decl)
int grok_ctor_properties (tree ctype, tree decl)
bool grok_op_properties (tree decl, bool complain)
tree check_elaborated_type_specifier (enum tag_types tag_code, tree decl, bool allow_template_p)
tree xref_tag (enum tag_types tag_code, tree name, tag_scope scope, bool template_header_p)
tree xref_tag_from_type (tree old, tree id, tag_scope scope)
void xref_basetypes (tree ref, tree base_list)
tree start_enum (tree name)
void finish_enum (tree enumtype)
void build_enumerator (tree name, tree value, tree enumtype)
void start_preparsed_function (tree decl1, tree attrs, int flags)
int start_function (cp_decl_specifier_seq *declspecs, const cp_declarator *declarator, tree attrs)
tree begin_function_body (void)
void finish_function_body (tree compstmt)
tree finish_function (int flags)
tree start_method (cp_decl_specifier_seq *declspecs, const cp_declarator *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)
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 build_void_list_node (void)
bool cp_missing_noreturn_ok_p (tree decl)
const char * cxx_comdat_group (tree decl)

Variables

tree error_mark_list
tree cp_global_trees [CPTI_MAX]
tree global_type_node
tree global_scope_name
tree static_aggregates
tree integer_two_node
tree integer_three_node
int function_depth
static enum deprecated_states deprecated_state = DEPRECATED_NORMAL
bool have_extern_spec
static struct cp_switchswitch_stack
int(* p_copy_fn_p )(tree) = copy_fn_p


Define Documentation

#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 local_names   cp_function_chain->x_local_names

Definition at line 195 of file decl.c.

#define named_label_uses   cp_function_chain->x_named_label_uses

Definition at line 193 of file decl.c.

#define named_labels   cp_function_chain->x_named_labels

Definition at line 225 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 237 of file decl.c.


Function Documentation

static int ambi_op_p ( enum tree_code  code  )  [static]

Definition at line 8650 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 5431 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_destructor_body ( void   )  [static]

tree begin_function_body ( void   ) 

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

tree build_cp_library_fn_ptr ( const char *  name,
tree  type 
)

Definition at line 3270 of file decl.c.

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

tree build_library_fn ( tree  name,
tree  type 
)

Definition at line 3240 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 ( const char *  name,
tree  type 
)

Definition at line 3261 of file decl.c.

tree build_ptrmem_type ( tree  class_type,
tree  member_type 
)

tree build_ptrmemfunc_type ( tree  type  ) 

tree build_void_list_node ( void   ) 

Definition at line 11142 of file decl.c.

References build_tree_list, NULL_TREE, and void_type_node.

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

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

tree check_default_argument ( tree  decl,
tree  arg 
)

tree check_elaborated_type_specifier ( enum tag_types  tag_code,
tree  decl,
bool  allow_template_p 
)

Definition at line 9042 of file decl.c.

static void check_for_uninitialized_const_var ( tree  decl  )  [static]

Definition at line 4075 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 2199 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 location_t locus 
) [static]

static void check_previous_gotos ( tree  decl  )  [static]

Definition at line 2215 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 
)

Definition at line 6030 of file decl.c.

References ARITHMETIC_TYPE_P, CP_TYPE_CONST_P, error(), INTEGRAL_TYPE_P, pedantic, pedwarn(), and TREE_CODE.

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

Definition at line 2206 of file decl.c.

References check_previous_goto_1(), NULL, and NULL_TREE.

tree check_tag_decl ( cp_decl_specifier_seq declspecs  ) 

Definition at line 3397 of file decl.c.

tree check_var_type ( tree  identifier,
tree  type 
)

Definition at line 6340 of file decl.c.

void complete_vars ( tree  type  ) 

tree compute_array_index_type ( tree  name,
tree  size 
)

int copy_fn_p ( tree  d  ) 

int cp_complete_array_type ( tree ptype,
tree  initial_value,
bool  do_default 
)

Definition at line 5370 of file decl.c.

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

Definition at line 4717 of file decl.c.

References abstract_virtuals_error(), add_decl_expr(), add_decl_stmt(), add_stmt(), at_eof, at_function_scope_p(), build_zero_init(), building_stmt_tree, check_initializer(), CLASSTYPE_GOT_SEMICOLON, cleanup(), COMPLETE_TYPE_P, CP_DECL_CONTEXT, current_binding_level, current_class_type, current_namespace, DECL_ATTRIBUTES, DECL_CONTEXT, DECL_EXTERNAL, DECL_FUNCTION_SCOPE_P, DECL_INITIAL, DECL_INITIALIZED_IN_CLASS_P, DECL_INITIALIZED_P, DECL_LANG_SPECIFIC, DECL_NAME, DECL_NOT_REALLY_EXTERN, DECL_PRETTY_FUNCTION_P, DECL_THREAD_LOCAL, dependent_type_p(), determine_visibility(), doing_semantic_analysis_p, error(), error_mark_node, expand_static_init(), gcc_assert, get_identifier(), global_scope_p, initialize_local_var(), IS_AGGR_TYPE, layout_type(), layout_var_decl(), lookup_attribute(), make_decl_rtl(), make_rtl_for_nonlocal_decl(), mark_decl_referenced(), maybe_apply_renaming_pragma(), maybe_commonize_var(), maybe_deduce_size_from_array_init(), maybe_inject_for_scope_var(), my_friendly_assert, NULL, NULL_RTX, NULL_TREE, pod_type_p(), pop_decl_namespace(), pop_nested_class(), processing_template_decl, push_cleanup(), rest_of_decl_compilation(), SET_DECL_ASSEMBLER_NAME, SET_DECL_RTL, set_identifier_type_value(), strip_array_types(), target_type(), TREE_CODE, TREE_READONLY, TREE_STATIC, TREE_STRING_POINTER, TREE_TYPE, TYPE_BEING_DEFINED, TYPE_DECL_SUPPRESS_DEBUG, TYPE_HAS_MUTABLE_P, TYPE_MAIN_DECL, TYPE_NEEDS_CONSTRUCTING, TYPE_P, and warning.

tree cp_fname_init ( const char *  name,
tree type_p 
)

Definition at line 3060 of file decl.c.

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

bool cp_missing_noreturn_ok_p ( tree  decl  ) 

Definition at line 11149 of file decl.c.

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 816 of file decl.c.

References build_decl, DECL_ARTIFICIAL, SET_DECL_IMPLICIT_TYPEDEF_P, and TYPE_NAME.

const char* cxx_comdat_group ( tree  decl  ) 

Definition at line 11158 of file decl.c.

void cxx_init_decl_processing ( void   ) 

Definition at line 2870 of file decl.c.

References abi_node, abort_fndecl, add_exception_specifier(), begin_scope(), 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_cst(), build_lang_decl(), build_library_fn_ptr(), build_pointer_type(), build_qualified_type(), build_tree_list, c_common_nodes_and_builtins(), const_ptr_type_node, cp_make_fname_decl(), create_implicit_typedef(), current_binding_level, current_function_decl, current_lang_name, current_namespace, DECL_CONTEXT, delta_type_node, empty_except_spec, error_mark_list, error_mark_node, flag_exceptions, flag_inline_functions, flag_inline_trees, flag_no_inline, flag_pedantic_errors, flag_permissive, flag_signed_char, flag_weak, force_align_functions_log, gcc_assert, get_identifier(), global_delete_fndecl, global_namespace, global_scope_name, global_type_node, init_class_processing(), init_exception_processing(), init_rtti_processing(), initialize_predefined_identifiers(), integer_three_node, integer_two_node, 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_name_c, lang_name_cplusplus, layout_type(), make_aggr_type(), make_fname_decl, make_node, NULL, NULL_TREE, pop_namespace(), ptr_type_node, ptrdiff_type_node, ptrmemfunc_vbit_in_pfn, push_cp_library_fn(), push_namespace(), push_to_top_level(), record_builtin_java_type(), record_builtin_type(), record_unknown_type(), RID_BOOL, RID_MAX, size_type_node, sk_namespace, start_fname_decls(), std_identifier, std_node, string_type_node, supports_one_only(), TARGET_PTRMEMFUNC_VBIT_LOCATION, tree_cons, TREE_TYPE, truthvalue_false_node, truthvalue_true_node, truthvalue_type_node, TYPE_ARG_TYPES, TYPE_CONTEXT, TYPE_POINTER_TO, TYPE_QUAL_CONST, TYPE_REFERENCE_TO, TYPE_STUB_DECL, UNKNOWN_TYPE, unknown_type_node, using_eh_for_cleanups(), void_list_node, void_type_node, vtable_entry_type, vtable_index_type, VTBL_PTR_TYPE, vtbl_ptr_type_node, vtbl_type_node, and vtt_parm_type.

tree cxx_maybe_build_cleanup ( tree  decl  ) 

void cxx_pop_function_context ( struct function f  ) 

Definition at line 11116 of file decl.c.

void cxx_push_function_context ( struct function f  ) 

static int decl_jump_unsafe ( tree  decl  )  [static]

tree declare_global_var ( tree  name,
tree  type 
)

tree declare_local_label ( tree  id  ) 

int decls_match ( tree  newdecl,
tree  olddecl 
)

tree define_label ( location_t  location,
tree  name 
)

tree duplicate_decls ( tree  newdecl,
tree  olddecl 
)

Definition at line 1026 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_build_type_attribute_variant(), 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_BY_CONSTANT_EXPRESSION_P, DECL_INITIALIZED_IN_CLASS_P, DECL_INITIALIZED_P, DECL_INLINE, DECL_INTERFACE_KNOWN, DECL_IS_BUILTIN, DECL_IS_MALLOC, DECL_IS_PURE, 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_REPO_AVAILABLE_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_STRUCT_FUNCTION, 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, DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, decls, decls_match(), duplicate_decls(), error(), error_mark_node, fileptr_type_node, flag_exceptions, gcc_assert, get_identifier(), ggc_free(), i, IDENTIFIER_ERROR_LOCUS, layout_decl(), layout_type(), lookup_attribute(), make_decl_rtl(), memcpy, gcc_target::merge_decl_attributes, gcc_target::merge_type_attributes, merge_types(), merge_weak(), my_friendly_assert, namespace_bindings_p(), NAMESPACE_LEVEL, NULL, NULL_TREE, pedantic, pedwarn(), processing_template_decl, redeclaration_error_message(), reregister_specialization(), same_type_p, SET_DECL_LANGUAGE, SET_DECL_RTL, SET_DECL_TEMPLATE_SPECIALIZATION, SET_OVERLOADED_OPERATOR_CODE, simple_cst_equal(), static_aggregates, t1, t2, targetm, TREE_ADDRESSABLE, TREE_ASM_WRITTEN, TREE_CHAIN, TREE_CODE, TREE_CODE_LENGTH, TREE_DEPRECATED, 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_NAME, 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 5161 of file decl.c.

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

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

tree finish_case_label ( tree  low_value,
tree  high_value 
)

static void finish_constructor_body ( void   )  [static]

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

Definition at line 4983 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 348 of file decl.c.

References poplevel().

void finish_stmt ( void   ) 

Definition at line 11051 of file decl.c.

void fixup_anonymous_aggr ( tree  t  ) 

static tree get_atexit_node ( void   )  [static]

static tree get_dso_handle_node ( void   )  [static]

Definition at line 5084 of file decl.c.

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

tree get_scope_of_declarator ( const cp_declarator declarator  ) 

Definition at line 6185 of file decl.c.

int grok_ctor_properties ( tree  ctype,
tree  decl 
)

Definition at line 8618 of file decl.c.

References copy_fn_p(), and error().

bool grok_op_properties ( tree  decl,
bool  complain 
)

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

void grok_special_member_properties ( tree  decl  ) 

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

Definition at line 6399 of file decl.c.

References ANON_AGGR_TYPE_P, cp_decl_specifier_seq::any_specifiers_p, arg_types, args, cp_declarator::array, at_class_scope_p(), ATTR_FLAG_ARRAY_NEXT, ATTR_FLAG_DECL_NEXT, ATTR_FLAG_FUNCTION_NEXT, cp_declarator::attributes, b, bad_specifiers(), BASELINK_FUNCTIONS, BITFIELD, build_complex_type(), build_cplus_array_type(), build_decl, build_decl_attribute_variant(), build_function_type(), build_lang_decl(), build_method_type_directly(), build_pointer_type(), build_ptrmem_type(), build_ptrmemfunc_type(), build_qualified_type(), build_reference_type(), c_common_unsigned_type(), C_IS_RESERVED_WORD, C_TYPEDEF_EXPLICITLY_SIGNED, CATCHPARM, cdk_array, cdk_error, cdk_function, cdk_id, cdk_pointer, cdk_ptrmem, cdk_reference, chainon(), char_type_node, check_explicit_specialization(), check_special_function_return_type(), check_static_variable_definition(), check_var_type(), 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, compute_array_index_type(), constructor_name(), constructor_name_p(), count, cp_apply_type_quals_to_decl(), cp_build_parm_decl(), cp_build_qualified_type, cp_build_qualified_type_real(), cp_type_quals(), create_array_type_for_decl(), current_aggr, current_binding_level, current_class_name, current_class_type, current_function_decl, current_lang_name, current_namespace, cxx_incomplete_type_error, DECL_ABSTRACT, DECL_ARTIFICIAL, DECL_ATTRIBUTES, decl_attributes(), DECL_CONSTRUCTOR_P, DECL_CONTEXT, DECL_EXTERNAL, decl_function_context(), DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, DECL_MUTABLE_P, DECL_NAME, DECL_NONADDRESSABLE_P, DECL_NONCONVERTING_P, DECL_REGISTER, DECL_THIS_EXTERN, DECL_THIS_STATIC, cp_declarator::declarator, decls, dependent_type_p(), deprecated_state, DEPRECATED_SUPPRESS, do_friend(), double_type_node, ds, ds_complex, ds_const, ds_explicit, ds_first, ds_friend, ds_inline, ds_last, ds_long, ds_restrict, ds_short, ds_signed, ds_thread, ds_typedef, ds_unsigned, ds_virtual, ds_volatile, DTOR_FLAG, error(), error_mark_node, cp_decl_specifier_seq::explicit_char_p, cp_decl_specifier_seq::explicit_int_p, FALSE, FIELD, flag_ms_extensions, flag_pedantic_errors, flag_signed_bitfields, flags, float_type_node, FROB_CONTEXT, FUNCDEF, cp_declarator::function, FUNCTION_FIRST_USER_PARMTYPE, gcc_assert, gcc_unreachable, get_first_fn(), global_namespace, grok_method_quals(), grokfndecl(), grokparms(), grokvardecl(), cp_declarator::id, IDENTIFIER_OPNAME_P, IDENTIFIER_POINTER, IDENTIFIER_TEMPLATE, IDENTIFIER_TYPENAME_P, in_system_header, int, integer_type_node, integer_zero_node, is_overloaded_fn(), is_typename_at_global_scope(), cp_declarator::kind, 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, MAIN_NAME_P, make_friend_class(), member_function_or_else(), MEMFUNCDEF, cp_decl_specifier_seq::multiple_storage_classes_p, cp_decl_specifier_seq::multiple_types_p, NEW_DELETE_OPNAME_P, NO_SPECIAL, NORMAL, nreverse(), NULL, NULL_TREE, ok(), PARM, pedantic, pedwarn(), cp_declarator::pointer, PRIMARY_TEMPLATE_P, processing_template_decl, same_type_p, sc_auto, sc_extern, sc_mutable, sc_none, sc_register, sc_static, set_linkage_for_static_data_member(), sfk_constructor, sfk_conversion, sfk_destructor, sfk_none, short_integer_type_node, short_unsigned_type_node, signed_char_type_node, cp_decl_specifier_seq::specs, staticp, cp_decl_specifier_seq::storage_class, template_class_depth(), tf_error, tf_ignore_bad_quals, tf_warning, toplevel_bindings_p(), TREE_CHAIN, TREE_CODE, TREE_DEPRECATED, TREE_OPERAND, TREE_OVERFLOW, TREE_PURPOSE, TREE_STATIC, TREE_TYPE, TREE_VALUE, TRUE, cp_decl_specifier_seq::type, 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_P, TYPE_QUAL_CONST, TYPE_QUAL_RESTRICT, TYPE_QUAL_VOLATILE, TYPE_SIZE_UNIT, TYPE_UNQUALIFIED, TYPE_WAS_ANONYMOUS, TYPENAME, TYPENAME_FLAG, TYPENAME_TYPE_FULLNAME, cp_declarator::u, 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  parms,
tree  orig_declarator,
int  virtualp,
enum overload_flags  flags,
cp_cv_quals  quals,
tree  raises,
int  check,
int  friendp,
int  publicp,
int  inlinep,
special_function_kind  sfk,
int  funcdef_flag,
int  template_count,
tree  in_namespace,
tree attrlist 
) [static]

Definition at line 5476 of file decl.c.

References args, build_exception_variant(), build_lang_decl(), check_classfn(), check_explicit_specialization(), check_java_method(), cp_pedwarn_at(), cplus_decl_attributes(), current_class_type, current_lang_name, current_namespace, current_template_parms, DECL_ARGUMENTS, DECL_ARTIFICIAL, DECL_CONSTRUCTOR_P, DECL_CONTEXT, DECL_DECLARED_INLINE_P, DECL_EXTERN_C_P, DECL_EXTERNAL, decl_function_context(), DECL_INITIAL, DECL_INLINE, DECL_INTERFACE_KNOWN, DECL_MAIN_P, DECL_NAME, DECL_NO_STATIC_CHAIN, DECL_NOT_REALLY_EXTERN, DECL_ORIGINAL_TYPE, DECL_STATIC_FUNCTION_P, DECL_TEMPLATE_INFO, DECL_TEMPLATE_RESULT, DECL_VIRTUAL_P, duplicate_decls(), error(), error_mark_node, flag_inline_trees, FROB_CONTEXT, gcc_assert, grok_ctor_properties(), grok_op_properties(), grokclassfn(), IDENTIFIER_LENGTH, IDENTIFIER_OPNAME_P, IDENTIFIER_POINTER, integer_type_node, lang_c, lang_name_cplusplus, MAIN_NAME_P, no_linkage_check(), nothrow_libfn_p(), NULL_TREE, ok(), pedwarn(), pop_scope(), PROCESSING_REAL_TEMPLATE_DECL_P, processing_template_decl, push_scope(), revert_static_member_fn(), same_type_p, SET_DECL_IMPLICIT_INSTANTIATION, SET_DECL_LANGUAGE, set_decl_namespace(), sfk_constructor, staticp, strncmp(), template_class_depth(), TREE_CHAIN, TREE_CODE, tree_cons, TREE_NOTHROW, TREE_OPERAND, TREE_PUBLIC, TREE_PURPOSE, TREE_THIS_VOLATILE, TREE_TYPE, TYPE_ANONYMOUS_P, TYPE_ARG_TYPES, TYPE_FOR_JAVA, TYPE_MAIN_DECL, TYPE_NAME, TYPE_NOTHROW_P, TYPE_UNQUALIFIED, and TYPE_VOLATILE.

static tree grokparms ( cp_parameter_declarator first_parm,
tree parms 
) [static]

tree groktypename ( cp_decl_specifier_seq type_specifiers,
const cp_declarator declarator 
)

Definition at line 3543 of file decl.c.

static tree grokvardecl ( tree  type,
tree  name,
const cp_decl_specifier_seq declspecs,
int  initialized,
int  constp,
tree  scope 
) [static]

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

struct named_label_use_list GTY ( ()   )  [read, write]

Definition at line 184 of file decl.c.

References next.

void initialize_artificial_var ( tree  decl,
tree  init 
)

Definition at line 4695 of file decl.c.

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

static void initialize_predefined_identifiers ( void   )  [static]

void insert_block ( tree  block  ) 

Definition at line 752 of file decl.c.

References chainon(), current_binding_level, and TREE_USED.

static void layout_var_decl ( tree  decl  )  [static]

int local_variable_p ( tree  t  ) 

Definition at line 8275 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,
int *  walk_subtrees,
void *data  ATTRIBUTE_UNUSED 
) [static]

Definition at line 8305 of file decl.c.

References DECL_ARTIFICIAL, local_variable_p(), NULL_TREE, and TYPE_P.

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

static tree lookup_and_check_tag ( enum tag_types  tag_code,
tree  name,
tag_scope  scope,
bool  template_header_p 
) [static]

tree lookup_label ( tree  id  ) 

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,
enum tag_types  tag_type,
tsubst_flags_t  complain 
)

Definition at line 2533 of file decl.c.

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

Definition at line 2653 of file decl.c.

static void maybe_commonize_var ( tree  decl  )  [static]

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

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 5412 of file decl.c.

References DTOR_FLAG, and error().

static tree next_initializable_field ( tree  field  )  [static]

Definition at line 4096 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 8294 of file decl.c.

References local_variable_p(), TREE_CODE, and TREE_STATIC.

void* objc_get_current_scope ( void   ) 

Definition at line 409 of file decl.c.

References current_binding_level.

void objc_mark_locals_volatile ( void enclosing_blk  ) 

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

static void pop_labels ( tree  block  )  [static]

Definition at line 387 of file decl.c.

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

void pop_switch ( void   ) 

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

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

Definition at line 3290 of file decl.c.

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

tree push_library_fn ( tree  name,
tree  type 
)

Definition at line 3279 of file decl.c.

References build_library_fn(), and pushdecl_top_level().

static void push_local_name ( tree  decl  )  [static]

void push_switch ( tree  switch_stmt  ) 

tree push_throw_library_fn ( tree  name,
tree  type 
)

Definition at line 3313 of file decl.c.

References push_library_fn(), TREE_NOTHROW, and TREE_THIS_VOLATILE.

tree push_void_library_fn ( tree  name,
tree  parmtypes 
)

Definition at line 3303 of file decl.c.

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

static tree record_builtin_java_type ( const char *  name,
int  size 
) [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]

tree 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 bool reshape_init_array ( tree  elt_type,
tree  max_index,
tree initp,
tree  new_init 
) [static]

void revert_static_member_fn ( tree  decl  ) 

static void save_function_data ( tree  decl  )  [static]

static void set_linkage_for_static_data_member ( tree  decl  )  [static]

Definition at line 5790 of file decl.c.

References DECL_INTERFACE_KNOWN, processing_template_decl, TREE_PUBLIC, and TREE_STATIC.

Referenced by grokdeclarator(), and grokvardecl().

tree shadow_tag ( cp_decl_specifier_seq declspecs  ) 

Definition at line 3502 of file decl.c.

static tree start_cleanup_fn ( void   )  [static]

tree start_decl ( const cp_declarator declarator,
cp_decl_specifier_seq declspecs,
int  initialized,
tree  attributes,
tree  prefix_attributes,
tree pushed_scope_p 
)

Definition at line 3572 of file decl.c.

void start_decl_1 ( tree  decl  ) 

tree start_enum ( tree  name  ) 

int start_function ( cp_decl_specifier_seq declspecs,
const cp_declarator declarator,
tree  attrs 
)

Definition at line 10265 of file decl.c.

tree start_method ( cp_decl_specifier_seq declspecs,
const cp_declarator declarator,
tree  attrlist 
)

Definition at line 10831 of file decl.c.

void start_preparsed_function ( tree  decl1,
tree  attrs,
int  flags 
)

Definition at line 9943 of file decl.c.

static void store_parm_decls ( tree  current_function_parms  )  [static]

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

Definition at line 9016 of file decl.c.

References class_type, enum_type, gcc_unreachable, record_type, typename_type, and union_type.

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

static hashval_t typename_hash ( const void k  )  [static]

Definition at line 2429 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 8663 of file decl.c.

static void use_label ( tree  decl  )  [static]

Definition at line 2030 of file decl.c.

References current_binding_level, GGC_NEW, input_location, named_label_uses, and NULL.

int walk_namespaces ( walk_namespaces_fn  f,
void data 
)

Definition at line 780 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 763 of file decl.c.

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

void warn_extern_redeclared_static ( tree  newdecl,
tree  olddecl 
)

Definition at line 987 of file decl.c.

int wrapup_globals_for_namespace ( tree  namespace,
void data 
)

void xref_basetypes ( tree  ref,
tree  base_list 
)

tree xref_tag ( enum tag_types  tag_code,
tree  name,
tag_scope  scope,
bool  template_header_p 
)

Definition at line 9205 of file decl.c.

tree xref_tag_from_type ( tree  old,
tree  id,
tag_scope  scope 
)

Definition at line 9336 of file decl.c.


Variable Documentation

tree cp_global_trees[CPTI_MAX]

Definition at line 171 of file decl.c.

enum deprecated_states deprecated_state = DEPRECATED_NORMAL [static]

Definition at line 242 of file decl.c.

Definition at line 124 of file decl.c.

Definition at line 230 of file decl.c.

Definition at line 207 of file decl.c.

Definition at line 207 of file decl.c.

int(* p_copy_fn_p)(tree) = copy_fn_p

Definition at line 201 of file decl.c.

Definition at line 2358 of file decl.c.


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