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

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "input.h"
#include "tm.h"
#include "intl.h"
#include "tree.h"
#include "tree-inline.h"
#include "rtl.h"
#include "flags.h"
#include "function.h"
#include "output.h"
#include "expr.h"
#include "c-tree.h"
#include "toplev.h"
#include "ggc.h"
#include "tm_p.h"
#include "cpplib.h"
#include "target.h"
#include "debug.h"
#include "opts.h"
#include "timevar.h"
#include "c-common.h"
#include "c-pragma.h"
#include "langhooks.h"
#include "tree-mudflap.h"
#include "tree-gimple.h"
#include "diagnostic.h"
#include "tree-dump.h"
#include "cgraph.h"
#include "hashtab.h"
#include "libfuncs.h"
#include "except.h"
#include "langhooks-def.h"
#include "pointer-set.h"
#include "gt-c-decl.h"

Include dependency graph for c-decl.c:

Go to the source code of this file.

Defines

#define B_IN_SCOPE(b1, b2)   ((b1)->depth == (b2)->depth)
#define B_IN_CURRENT_SCOPE(b)   ((b)->depth == current_scope->depth)
#define B_IN_FILE_SCOPE(b)   ((b)->depth == 1 /*file_scope->depth*/)
#define B_IN_EXTERNAL_SCOPE(b)   ((b)->depth == 0 /*external_scope->depth*/)
#define I_SYMBOL_BINDING(node)   (((struct lang_identifier *) IDENTIFIER_NODE_CHECK(node))->symbol_binding)
#define I_SYMBOL_DECL(node)   (I_SYMBOL_BINDING(node) ? I_SYMBOL_BINDING(node)->decl : 0)
#define I_TAG_BINDING(node)   (((struct lang_identifier *) IDENTIFIER_NODE_CHECK(node))->tag_binding)
#define I_TAG_DECL(node)   (I_TAG_BINDING(node) ? I_TAG_BINDING(node)->decl : 0)
#define I_LABEL_BINDING(node)   (((struct lang_identifier *) IDENTIFIER_NODE_CHECK(node))->label_binding)
#define I_LABEL_DECL(node)   (I_LABEL_BINDING(node) ? I_LABEL_BINDING(node)->decl : 0)
#define SCOPE_LIST_APPEND(scope, list, decl)
#define SCOPE_LIST_CONCAT(tscope, to, fscope, from)
#define END_OF_ARGLIST(t)   ((t) == void_type_node)
#define DECL_EXTERN_INLINE(DECL)

Enumerations

enum  decl_context {
  NORMAL, FUNCDEF, PARM, FIELD,
  BITFIELD, TYPENAME, NORMAL, FUNCDEF,
  PARM, CATCHPARM, FIELD, BITFIELD,
  TYPENAME, MEMFUNCDEF, NORMAL, FUNCDEF,
  PARM, FIELD, BITFIELD, TYPENAME,
  NORMAL, FUNCDEF, PARM, CATCHPARM,
  FIELD, BITFIELD, TYPENAME, MEMFUNCDEF,
  NORMAL, FUNCDEF, PARM, FIELD,
  TYPENAME, NORMAL, FUNCDEF, PARM,
  CATCHPARM, FIELD, BITFIELD, TYPENAME,
  MEMFUNCDEF, NORMAL, FUNCDEF, PARM,
  FIELD, TYPENAME, NORMAL, FUNCDEF,
  PARM, CATCHPARM, FIELD, BITFIELD,
  TYPENAME, MEMFUNCDEF
}
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 GTY (())
union lang_tree_node GTY ((desc("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"), chain_next("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : (union lang_tree_node *) TREE_CHAIN (&%h.generic)")))
struct c_scope GTY ((chain_next("%h.outer")))
void c_print_identifier (FILE *file, tree node, int indent)
static void bind (tree name, tree decl, struct c_scope *scope, bool invisible, bool nested)
static struct c_binding * free_binding_and_advance (struct c_binding *b)
void c_finish_incomplete_decl (tree decl)
voidobjc_get_current_scope (void)
void objc_mark_locals_volatile (void *enclosing_blk)
int global_bindings_p (void)
void keep_next_level (void)
void declare_parm_level (void)
void push_scope (void)
static void set_type_context (tree type, tree context)
tree pop_scope (void)
void push_file_scope (void)
void pop_file_scope (void)
void insert_block (tree block)
static void pushtag (tree name, tree type)
static tree match_builtin_function_types (tree newtype, tree oldtype)
static void diagnose_arglist_conflict (tree newdecl, tree olddecl, tree newtype, tree oldtype)
static bool validate_proto_after_old_defn (tree newdecl, tree newtype, tree oldtype)
static void locate_old_decl (tree decl, void(*diag)(const char *,...) ATTRIBUTE_GCC_CDIAG(1, 2))
static bool diagnose_mismatched_decls (tree newdecl, tree olddecl, tree *newtypep, tree *oldtypep)
static void merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
static bool duplicate_decls (tree newdecl, tree olddecl)
static void warn_if_shadowing (tree new_decl)
static void clone_underlying_type (tree x)
tree pushdecl (tree x)
tree pushdecl_top_level (tree x)
static void implicit_decl_warning (tree id, tree olddecl)
tree implicitly_declare (tree functionid)
void undeclared_variable (tree id, location_t loc)
static tree make_label (tree name, location_t location)
tree lookup_label (tree name)
tree declare_label (tree name)
tree define_label (location_t location, tree name)
static tree lookup_tag (enum tree_code code, tree name, int thislevel_only)
void pending_xref_error (void)
tree lookup_name (tree name)
static tree lookup_name_in_scope (tree name, struct c_scope *scope)
void c_init_decl_processing (void)
static tree c_make_fname_decl (tree id, int type_dep)
tree builtin_function (const char *name, tree type, int function_code, enum built_in_class cl, const char *library_name, tree attrs)
void shadow_tag (const struct c_declspecs *declspecs)
void shadow_tag_warned (const struct c_declspecs *declspecs, int warned)
int quals_from_declspecs (const struct c_declspecs *specs)
struct c_declaratorbuild_array_declarator (tree expr, struct c_declspecs *quals, bool static_p, bool vla_unspec_p)
struct c_declaratorset_array_declarator_inner (struct c_declarator *decl, struct c_declarator *inner, bool abstract_p)
static void add_flexible_array_elts_to_size (tree decl, tree init)
tree groktypename (struct c_type_name *type_name)
tree start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs, bool initialized, tree attributes)
void c_maybe_initialize_eh (void)
void finish_decl (tree decl, tree init, tree asmspec_tree)
tree grokparm (const struct c_parm *parm)
void push_parm_decl (const struct c_parm *parm)
void mark_forward_parm_decls (void)
tree build_compound_literal (tree type, tree init)
static bool flexible_array_type_p (tree type)
static void check_bitfield_type_and_width (tree *type, tree *width, const char *orig_name)
static tree grokdeclarator (const struct c_declarator *declarator, struct c_declspecs *declspecs, enum decl_context decl_context, bool initialized, tree *width)
static tree grokparms (struct c_arg_info *arg_info, bool funcdef_flag)
struct c_arg_infoget_parm_info (bool ellipsis)
struct c_typespec parser_xref_tag (enum tree_code code, tree name)
tree xref_tag (enum tree_code code, tree name)
tree start_struct (enum tree_code code, tree name)
tree grokfield (struct c_declarator *declarator, struct c_declspecs *declspecs, tree width)
static void detect_field_duplicates (tree fieldlist)
tree finish_struct (tree t, tree fieldlist, tree attributes)
static void layout_array_type (tree t)
tree start_enum (tree name)
tree finish_enum (tree enumtype, tree values, tree attributes)
tree build_enumerator (tree name, tree value)
int start_function (struct c_declspecs *declspecs, struct c_declarator *declarator, tree attributes)
static void store_parm_decls_newstyle (tree fndecl, const struct c_arg_info *arg_info)
static void store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
void store_parm_decls_from (struct c_arg_info *arg_info)
void store_parm_decls (void)
static void c_gimple_diagnostics_recursively (tree fndecl)
void finish_function (void)
void c_expand_body (tree fndecl)
tree check_for_loop_decls (void)
void c_push_function_context (struct function *f)
void c_pop_function_context (struct function *f)
void c_dup_lang_specific_decl (tree decl)
stmt_tree current_stmt_tree (void)
int anon_aggr_type_p (tree ARG_UNUSED(node))
tree identifier_global_value (tree t)
void record_builtin_type (enum rid rid_index, const char *name, tree type)
tree build_void_list_node (void)
struct c_parmbuild_c_parm (struct c_declspecs *specs, tree attrs, struct c_declarator *declarator)
struct c_declaratorbuild_attrs_declarator (tree attrs, struct c_declarator *target)
struct c_declaratorbuild_function_declarator (struct c_arg_info *args, struct c_declarator *target)
struct c_declaratorbuild_id_declarator (tree ident)
struct c_declaratormake_pointer_declarator (struct c_declspecs *type_quals_attrs, struct c_declarator *target)
struct c_declspecsbuild_null_declspecs (void)
struct c_declspecsdeclspecs_add_qual (struct c_declspecs *specs, tree qual)
struct c_declspecsdeclspecs_add_type (struct c_declspecs *specs, struct c_typespec spec)
struct c_declspecsdeclspecs_add_scspec (struct c_declspecs *specs, tree scspec)
struct c_declspecsdeclspecs_add_attrs (struct c_declspecs *specs, tree attrs)
struct c_declspecsfinish_declspecs (struct c_declspecs *specs)
static void build_cdtor (int method_type, tree cdtors)
static void c_write_global_declarations_1 (tree globals)
static void c_write_global_declarations_2 (tree globals)

Variables

tree pending_invalid_xref
location_t pending_invalid_xref_location
bool c_eh_initialized_p
static tree enum_next_value
static int enum_overflow
static location_t current_function_prototype_locus
static bool current_function_prototype_built_in
static tree current_function_prototype_arg_types
static struct c_arg_infocurrent_function_arg_info
struct obstack parser_obstack
char C_SIZEOF_STRUCT_LANG_IDENTIFIER_isnt_accurate [(sizeof(struct lang_identifier)==C_SIZEOF_STRUCT_LANG_IDENTIFIER)?1:-1]
static enum deprecated_states deprecated_state = DEPRECATED_NORMAL


Define Documentation

#define B_IN_CURRENT_SCOPE ( b   )     ((b)->depth == current_scope->depth)

Definition at line 222 of file c-decl.c.

#define B_IN_EXTERNAL_SCOPE ( b   )     ((b)->depth == 0 /*external_scope->depth*/)

Definition at line 224 of file c-decl.c.

#define B_IN_FILE_SCOPE ( b   )     ((b)->depth == 1 /*file_scope->depth*/)

Definition at line 223 of file c-decl.c.

#define B_IN_SCOPE ( b1,
b2   )     ((b1)->depth == (b2)->depth)

Definition at line 221 of file c-decl.c.

#define DECL_EXTERN_INLINE ( DECL   ) 

Value:

Referenced by diagnose_mismatched_decls().

#define END_OF_ARGLIST (  )     ((t) == void_type_node)

#define I_LABEL_BINDING ( node   )     (((struct lang_identifier *) IDENTIFIER_NODE_CHECK(node))->label_binding)

Definition at line 236 of file c-decl.c.

#define I_LABEL_DECL ( node   )     (I_LABEL_BINDING(node) ? I_LABEL_BINDING(node)->decl : 0)

Definition at line 238 of file c-decl.c.

#define I_SYMBOL_BINDING ( node   )     (((struct lang_identifier *) IDENTIFIER_NODE_CHECK(node))->symbol_binding)

Definition at line 226 of file c-decl.c.

#define I_SYMBOL_DECL ( node   )     (I_SYMBOL_BINDING(node) ? I_SYMBOL_BINDING(node)->decl : 0)

Definition at line 228 of file c-decl.c.

#define I_TAG_BINDING ( node   )     (((struct lang_identifier *) IDENTIFIER_NODE_CHECK(node))->tag_binding)

Definition at line 231 of file c-decl.c.

#define I_TAG_DECL ( node   )     (I_TAG_BINDING(node) ? I_TAG_BINDING(node)->decl : 0)

Definition at line 233 of file c-decl.c.

#define SCOPE_LIST_APPEND ( scope,
list,
decl   ) 

Value:

do {  \
  struct c_scope *s_ = (scope);       \
  tree d_ = (decl);         \
  if (s_->list##_last)          \
    TREE_CHAIN (s_->list##_last) = d_;      \
  else              \
    s_->list = d_;          \
  s_->list##_last = d_;         \
} while (0)

#define SCOPE_LIST_CONCAT ( tscope,
to,
fscope,
from   ) 

Value:

do {  \
  struct c_scope *t_ = (tscope);        \
  struct c_scope *f_ = (fscope);        \
  if (t_->to##_last)            \
    TREE_CHAIN (t_->to##_last) = f_->from;      \
  else                \
    t_->to = f_->from;            \
  t_->to##_last = f_->from##_last;        \
} while (0)


Enumeration Type Documentation

Enumerator:
NORMAL 
FUNCDEF 
PARM 
FIELD 
BITFIELD 
TYPENAME 
NORMAL 
FUNCDEF 
PARM 
CATCHPARM 
FIELD 
BITFIELD 
TYPENAME 
MEMFUNCDEF 
NORMAL 
FUNCDEF 
PARM 
FIELD 
BITFIELD 
TYPENAME 
NORMAL 
FUNCDEF 
PARM 
CATCHPARM 
FIELD 
BITFIELD 
TYPENAME 
MEMFUNCDEF 
NORMAL 
FUNCDEF 
PARM 
FIELD 
TYPENAME 
NORMAL 
FUNCDEF 
PARM 
CATCHPARM 
FIELD 
BITFIELD 
TYPENAME 
MEMFUNCDEF 
NORMAL 
FUNCDEF 
PARM 
FIELD 
TYPENAME 
NORMAL 
FUNCDEF 
PARM 
CATCHPARM 
FIELD 
BITFIELD 
TYPENAME 
MEMFUNCDEF 

Definition at line 70 of file c-decl.c.

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


Function Documentation

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

int anon_aggr_type_p ( tree   ARG_UNUSEDnode  ) 

Definition at line 7060 of file c-decl.c.

static void bind ( tree  name,
tree  decl,
struct c_scope *  scope,
bool  invisible,
bool  nested 
) [static]

Definition at line 486 of file c-decl.c.

References b, gcc_unreachable, GGC_NEW, I_LABEL_BINDING, I_SYMBOL_BINDING, I_TAG_BINDING, and TREE_CODE.

struct c_declarator* build_array_declarator ( tree  expr,
struct c_declspecs quals,
bool  static_p,
bool  vla_unspec_p 
) [read]

struct c_declarator* build_attrs_declarator ( tree  attrs,
struct c_declarator target 
) [read]

struct c_parm* build_c_parm ( struct c_declspecs specs,
tree  attrs,
struct c_declarator declarator 
) [read]

Definition at line 7107 of file c-decl.c.

References c_parm::attrs, c_parm::declarator, parser_obstack, ret, c_parm::specs, and XOBNEW.

static void build_cdtor ( int  method_type,
tree  cdtors 
) [static]

tree build_compound_literal ( tree  type,
tree  init 
)

tree build_enumerator ( tree  name,
tree  value 
)

struct c_declarator* build_function_declarator ( struct c_arg_info args,
struct c_declarator target 
) [read]

struct c_declarator* build_id_declarator ( tree  ident  )  [read]

struct c_declspecs* build_null_declspecs ( void   )  [read]

tree build_void_list_node ( void   ) 

Definition at line 7098 of file c-decl.c.

References build_tree_list, NULL_TREE, and void_type_node.

tree builtin_function ( const char *  name,
tree  type,
int  function_code,
enum built_in_class  cl,
const char *  library_name,
tree  attrs 
)

void c_dup_lang_specific_decl ( tree  decl  ) 

Definition at line 7029 of file c-decl.c.

References DECL_LANG_SPECIFIC, ggc_alloc, GGC_NEW, and memcpy.

void c_expand_body ( tree  fndecl  ) 

void c_finish_incomplete_decl ( tree  decl  ) 

static void c_gimple_diagnostics_recursively ( tree  fndecl  )  [static]

void c_init_decl_processing ( void   ) 

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

void c_maybe_initialize_eh ( void   ) 

void c_pop_function_context ( struct function f  ) 

void c_print_identifier ( FILE file,
tree  node,
int  indent 
)

void c_push_function_context ( struct function f  ) 

static void c_write_global_declarations_1 ( tree  globals  )  [static]

static void c_write_global_declarations_2 ( tree  globals  )  [static]

Definition at line 8008 of file c-decl.c.

References debug_hooks, gcc_debug_hooks::global_decl, and TREE_CHAIN.

static void check_bitfield_type_and_width ( tree type,
tree width,
const char *  orig_name 
) [static]

tree check_for_loop_decls ( void   ) 

static void clone_underlying_type ( tree  x  )  [static]

stmt_tree current_stmt_tree ( void   ) 

Definition at line 7051 of file c-decl.c.

tree declare_label ( tree  name  ) 

void declare_parm_level ( void   ) 

Definition at line 628 of file c-decl.c.

References current_scope().

struct c_declspecs* declspecs_add_attrs ( struct c_declspecs specs,
tree  attrs 
) [read]

Definition at line 7722 of file c-decl.c.

References c_declspecs::attrs, chainon(), and c_declspecs::declspecs_seen_p.

struct c_declspecs* declspecs_add_qual ( struct c_declspecs specs,
tree  qual 
) [read]

struct c_declspecs* declspecs_add_scspec ( struct c_declspecs specs,
tree  scspec 
) [read]

struct c_declspecs* declspecs_add_type ( struct c_declspecs specs,
struct c_typespec  spec 
) [read]

tree define_label ( location_t  location,
tree  name 
)

static void detect_field_duplicates ( tree  fieldlist  )  [static]

static void diagnose_arglist_conflict ( tree  newdecl,
tree  olddecl,
tree  newtype,
tree  oldtype 
) [static]

static bool diagnose_mismatched_decls ( tree  newdecl,
tree  olddecl,
tree newtypep,
tree oldtypep 
) [static]

static bool duplicate_decls ( tree  newdecl,
tree  olddecl 
) [static]

Definition at line 1899 of file c-decl.c.

References diagnose_mismatched_decls(), merge_decls(), NULL, and TREE_NO_WARNING.

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

struct c_declspecs* finish_declspecs ( struct c_declspecs specs  )  [read]

tree finish_enum ( tree  enumtype,
tree  values,
tree  attributes 
)

void finish_function ( void   ) 

tree finish_struct ( tree  t,
tree  fieldlist,
tree  attributes 
)

Definition at line 5441 of file c-decl.c.

References _, add_stmt(), ATTR_FLAG_TYPE_IN_PLACE, BITS_PER_UNIT, bitsize_int, build_decl, build_stmt(), c_bool_type_node, c_build_bitfield_integer_type(), C_DECL_VARIABLE_SIZE, c_dialect_objc, C_TYPE_FIELDS_READONLY, C_TYPE_FIELDS_VOLATILE, C_TYPE_INCOMPLETE_VARS, C_TYPE_VARIABLE_SIZE, CHAR_TYPE_SIZE, compare_tree_int(), COMPLETE_TYPE_P, constant_expression_warning(), cur_stmt_list, current_binding_level, current_scope(), DECL_ALIGN, decl_attributes(), DECL_BIT_FIELD, DECL_CONTEXT, DECL_INITIAL, DECL_MODE, DECL_NAME, DECL_PACKED, DECL_SIZE, DECL_USER_ALIGN, detect_field_duplicates(), element, EMPTY_FIELD_BOUNDARY, error(), error_mark_node, expand_decl(), field_decl_cmp(), flag_objc, flexible_array_type_p(), ggc_alloc, GGC_CNEW, GGC_NEWVAR, global_binding_level, HOST_WIDE_INT, IDENTIFIER_POINTER, in_parm_level_p(), in_system_header, integer_type_node, integer_zerop(), layout_array_type(), layout_decl(), layout_type(), len, list_length(), MAX, min_precision(), gcc_target::ms_bitfield_layout_p, NULL, NULL_TREE, objc_check_decl(), PCC_BITFIELD_TYPE_MATTERS, pedantic, pedwarn(), prev, qsort(), rest_of_decl_compilation(), rest_of_type_compilation(), SET_DECL_C_BIT_FIELD, STRIP_NOPS, t1, targetm, TREE_CHAIN, TREE_CODE, tree_int_cst_sgn(), tree_low_cst(), TREE_READONLY, TREE_THIS_VOLATILE, TREE_TYPE, TREE_UNSIGNED, TREE_VALUE, TYPE_ALIGN, TYPE_DOMAIN, TYPE_FIELDS, TYPE_LANG_SPECIFIC, TYPE_MAIN_VARIANT, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_MODE, TYPE_NAME, TYPE_NEXT_VARIANT, TYPE_PACKED, TYPE_PRECISION, TYPE_SIZE, TYPE_TRANSPARENT_UNION, TYPE_UNSIGNED, TYPE_USER_ALIGN, unsigned_type_node, variably_modified_type_p(), warning, x, and is::y.

static bool flexible_array_type_p ( tree  type  )  [static]

static struct c_binding* free_binding_and_advance ( struct c_binding *  b  )  [static, read]

Definition at line 546 of file c-decl.c.

References memset, and prev.

struct c_arg_info* get_parm_info ( bool  ellipsis  )  [read]

int global_bindings_p ( void   ) 

Definition at line 614 of file c-decl.c.

References c_override_global_bindings_to_false, and current_scope().

static tree grokdeclarator ( const struct c_declarator declarator,
struct c_declspecs declspecs,
enum decl_context  decl_context,
bool  initialized,
tree width 
) [static]

Definition at line 3884 of file c-decl.c.

References c_declarator::arg_info, arg_types, c_declarator::array, ATTR_FLAG_ARRAY_NEXT, ATTR_FLAG_DECL_NEXT, ATTR_FLAG_FUNCTION_NEXT, c_declarator::attrs, bitsize_zero_node, build_array_type(), build_decl, build_decl_attribute_variant(), build_distinct_type_copy(), build_function_type(), build_index_type(), build_pointer_type(), build_range_type(), c_apply_type_quals_to_decl(), c_build_qualified_type(), c_common_signed_type(), c_common_unsigned_type(), C_DECL_REGISTER, C_DECL_VARIABLE_SIZE, C_FUNCTION_IMPLICIT_INT, c_mark_addressable(), C_TYPE_FIELDS_VOLATILE, c_type_promotes_to(), C_TYPE_VARIABLE_SIZE, C_TYPEDEF_EXPLICITLY_SIGNED, cdk_array, cdk_attrs, cdk_function, cdk_id, cdk_pointer, chainon(), check_bitfield_type_and_width(), COMPLETE_OR_UNBOUND_ARRAY_TYPE_P, COMPLETE_TYPE_P, c_declspecs::const_p, constant_expression_warning(), convert(), csc_auto, csc_extern, csc_none, csc_register, csc_static, csc_typedef, current_scope(), DECL_ARG_TYPE, DECL_ARTIFICIAL, DECL_ASSEMBLER_NAME_SET_P, c_declspecs::decl_attr, decl_attributes(), DECL_DECLARED_INLINE_P, decl_default_tls_model(), DECL_EXTERNAL, DECL_IN_SYSTEM_HEADER, DECL_INLINE, DECL_LANG_SPECIFIC, DECL_NONADDRESSABLE_P, DECL_REGISTER, DECL_SOURCE_LOCATION, DECL_TLS_MODEL, c_declarator::declarator, c_declspecs::default_int_p, c_declspecs::deprecated_p, deprecated_state, DEPRECATED_SUPPRESS, error(), error_mark_node, c_declspecs::explicit_signed_p, FIELD, finish_decl(), flag_gen_aux_info, flag_hosted, flag_inline_trees, flag_isoc99, flag_signed_bitfields, flexible_array_type_p(), fold_build2, FUNCDEF, gcc_assert, gcc_unreachable, GGC_CNEW, grokparms(), gcc_target::have_tls, c_declarator::id, c_declarator::id_loc, identifier_global_value(), IDENTIFIER_POINTER, in_system_header, index_type, c_declspecs::inline_p, int, integer_one_node, integer_type_node, integer_zerop(), INTEGRAL_TYPE_P, c_declarator::kind, lookup_name(), MAIN_NAME_P, NORMAL, NULL, NULL_TREE, PARM, pedantic, pedwarn(), pedwarn_c99(), c_arg_info::pending_sizes, c_declarator::pointer_quals, pushdecl(), put_pending_sizes(), c_declspecs::restrict_p, size, size_one_node, size_zero_node, sizetype, c_declspecs::storage_class, strip_array_types(), STRIP_TYPE_NOPS, c_arg_info::tags, targetm, c_declspecs::thread_p, TREE_CHAIN, TREE_CODE, TREE_CONSTANT, tree_int_cst_sgn(), TREE_OVERFLOW, TREE_PUBLIC, TREE_STATIC, TREE_TYPE, TREE_VALUE, c_declspecs::type, TYPE_CONTEXT, TYPE_MAIN_VARIANT, TYPE_NAME, TYPE_QUAL_CONST, TYPE_QUAL_RESTRICT, TYPE_QUAL_VOLATILE, TYPE_QUALS, TYPE_READONLY, TYPE_RESTRICT, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_UNQUALIFIED, TYPE_VOLATILE, TYPENAME, c_declarator::u, variable_size(), variably_modified_type_p(), VOID_TYPE_P, c_declspecs::volatile_p, warn_deprecated_use(), warn_implicit_int, warn_return_type, and warning.

tree grokfield ( struct c_declarator declarator,
struct c_declspecs declspecs,
tree  width 
)

tree grokparm ( const struct c_parm parm  ) 

static tree grokparms ( struct c_arg_info arg_info,
bool  funcdef_flag 
) [static]

tree groktypename ( struct c_type_name type_name  ) 

struct c_scope GTY ( (chain_next("%h.outer"))   )  [read]

Definition at line 314 of file c-decl.c.

union lang_tree_node GTY ( (desc("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),chain_next("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : (union lang_tree_node *) TREE_CHAIN (&%h.generic)"))   )  [write]

Definition at line 260 of file c-decl.c.

static GTY ( ()   )  [static]

Definition at line 126 of file c-decl.c.

References BOOL_BITFIELD.

tree identifier_global_value ( tree  t  ) 

Definition at line 7068 of file c-decl.c.

References b, B_IN_EXTERNAL_SCOPE, B_IN_FILE_SCOPE, and I_SYMBOL_BINDING.

static void implicit_decl_warning ( tree  id,
tree  olddecl 
) [static]

tree implicitly_declare ( tree  functionid  ) 

void insert_block ( tree  block  ) 

Definition at line 957 of file c-decl.c.

References blocks, current_scope(), SCOPE_LIST_APPEND, and TREE_USED.

void keep_next_level ( void   ) 

Definition at line 620 of file c-decl.c.

References keep_next_level_flag.

static void layout_array_type ( tree  t  )  [static]

Definition at line 5701 of file c-decl.c.

References layout_array_type(), layout_type(), TREE_CODE, and TREE_TYPE.

static void locate_old_decl ( tree  decl,
void(*)(const char *,...) ATTRIBUTE_GCC_CDIAG diag(1, 2)   
) [static]

Definition at line 1144 of file c-decl.c.

References C_DECL_IMPLICIT, DECL_BUILT_IN, DECL_INITIAL, G_, and TREE_CODE.

tree lookup_label ( tree  name  ) 

tree lookup_name ( tree  name  ) 

Definition at line 2690 of file c-decl.c.

References b, and I_SYMBOL_BINDING.

static tree lookup_name_in_scope ( tree  name,
struct c_scope *  scope 
) [static]

Definition at line 2701 of file c-decl.c.

References b, B_IN_SCOPE, and I_SYMBOL_BINDING.

static tree lookup_tag ( enum tree_code  code,
tree  name,
int  thislevel_only 
) [static]

static tree make_label ( tree  name,
location_t  location 
) [static]

struct c_declarator* make_pointer_declarator ( struct c_declspecs type_quals_attrs,
struct c_declarator target 
) [read]

void mark_forward_parm_decls ( void   ) 

Definition at line 3669 of file c-decl.c.

References b, current_scope(), pedantic, pedwarn(), TREE_ASM_WRITTEN, and TREE_CODE.

static tree match_builtin_function_types ( tree  newtype,
tree  oldtype 
) [static]

static void merge_decls ( tree  newdecl,
tree  olddecl,
tree  newtype,
tree  oldtype 
) [static]

void* objc_get_current_scope ( void   ) 

Definition at line 584 of file c-decl.c.

References current_scope().

void objc_mark_locals_volatile ( void enclosing_blk  ) 

Definition at line 593 of file c-decl.c.

References b, current_scope(), and objc_volatilize_decl().

struct c_typespec parser_xref_tag ( enum tree_code  code,
tree  name 
) [read]

void pending_xref_error ( void   ) 

void pop_file_scope ( void   ) 

tree pop_scope ( void   ) 

void push_file_scope ( void   ) 

Definition at line 906 of file c-decl.c.

References bind(), current_scope(), DECL_NAME, push_scope(), start_fname_decls(), and TREE_CHAIN.

void push_parm_decl ( const struct c_parm parm  ) 

void push_scope ( void   ) 

Definition at line 634 of file c-decl.c.

References current_scope(), GGC_CNEW, keep_next_level_flag, and sorry().

tree pushdecl ( tree  x  ) 

tree pushdecl_top_level ( tree  x  ) 

Definition at line 2294 of file c-decl.c.

References bind(), DECL_NAME, gcc_assert, I_SYMBOL_BINDING, TREE_CODE, and TREE_PUBLIC.

static void pushtag ( tree  name,
tree  type 
) [static]

int quals_from_declspecs ( const struct c_declspecs specs  ) 

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

struct c_declarator* set_array_declarator_inner ( struct c_declarator decl,
struct c_declarator inner,
bool  abstract_p 
) [read]

static void set_type_context ( tree  type,
tree  context 
) [static]

Definition at line 688 of file c-decl.c.

References TYPE_CONTEXT, TYPE_MAIN_VARIANT, and TYPE_NEXT_VARIANT.

void shadow_tag ( const struct c_declspecs declspecs  ) 

Definition at line 2871 of file c-decl.c.

References shadow_tag_warned().

void shadow_tag_warned ( const struct c_declspecs declspecs,
int  warned 
)

tree start_decl ( struct c_declarator declarator,
struct c_declspecs declspecs,
bool  initialized,
tree  attributes 
)

tree start_enum ( tree  name  ) 

int start_function ( struct c_declspecs declspecs,
struct c_declarator declarator,
tree  attributes 
)

Definition at line 5992 of file c-decl.c.

References announce_function(), args, b, B_IN_SCOPE, build_decl, build_function_type(), c_break_label, c_cont_label, C_DECL_BUILTIN_PROTOTYPE, C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE, c_promoting_integer_type_p(), c_switch_stack, char_type_node, COMPLETE_OR_VOID_TYPE_P, composite_type(), comptypes(), current_function_decl, current_function_prototype_arg_types, current_function_prototype_built_in, current_function_prototype_locus, current_function_returns_abnormally, current_function_returns_null, current_function_returns_value, current_scope(), DECL_ARTIFICIAL, DECL_ASSEMBLER_NAME_SET_P, DECL_ATTRIBUTES, decl_attributes(), DECL_DECLARED_INLINE_P, DECL_EXTERNAL, DECL_IGNORED_P, DECL_INITIAL, DECL_NAME, DECL_RESULT, DECL_SOURCE_LOCATION, DECL_UNINLINABLE, declare_parm_level(), diagnostic_report_warnings_p, error(), error_mark_node, flag_isoc99, FUNCDEF, gcc_assert, grokdeclarator(), I_SYMBOL_BINDING, info, integer_type_node, label_context_stack_se, label_context_stack_vm, c_label_context_se::labels_def, c_label_context_vm::labels_def, c_label_context_se::labels_used, c_label_context_vm::labels_used, lookup_attribute(), lookup_name_in_scope(), MAIN_NAME_P, maybe_apply_pragma_weak(), c_label_context_se::next, c_label_context_vm::next, NULL, NULL_TREE, parser_obstack, pedwarn(), pedwarn_c99(), push_scope(), pushdecl(), c_label_context_vm::scope, size_zero_node, start_fname_decls(), TREE_CHAIN, TREE_CODE, TREE_PUBLIC, TREE_STATIC, TREE_TYPE, TREE_USED, TREE_VALUE, TYPE_ARG_TYPES, TYPE_MAIN_VARIANT, TYPE_PRECISION, TYPE_UNSIGNED, UNKNOWN_LOCATION, unsigned_type_node, void_type_node, warn_main, warn_missing_declarations, warn_missing_prototypes, warn_strict_prototypes, warning, and XOBNEW.

tree start_struct ( enum tree_code  code,
tree  name 
)

void store_parm_decls ( void   ) 

void store_parm_decls_from ( struct c_arg_info arg_info  ) 

Definition at line 6622 of file c-decl.c.

References store_parm_decls().

static void store_parm_decls_newstyle ( tree  fndecl,
const struct c_arg_info arg_info 
) [static]

static void store_parm_decls_oldstyle ( tree  fndecl,
const struct c_arg_info arg_info 
) [static]

void undeclared_variable ( tree  id,
location_t  loc 
)

Definition at line 2443 of file c-decl.c.

References bind(), current_function_decl, current_scope(), error(), and error_mark_node.

static bool validate_proto_after_old_defn ( tree  newdecl,
tree  newtype,
tree  oldtype 
) [static]

static void warn_if_shadowing ( tree  new_decl  )  [static]

tree xref_tag ( enum tree_code  code,
tree  name 
)


Variable Documentation

Definition at line 86 of file c-decl.c.

char C_SIZEOF_STRUCT_LANG_IDENTIFIER_isnt_accurate[(sizeof(struct lang_identifier)==C_SIZEOF_STRUCT_LANG_IDENTIFIER)?1:-1]

Definition at line 117 of file c-decl.c.

Definition at line 112 of file c-decl.c.

Definition at line 108 of file c-decl.c.

Definition at line 104 of file c-decl.c.

enum deprecated_states deprecated_state = DEPRECATED_NORMAL [static]

Definition at line 465 of file c-decl.c.

Definition at line 94 of file c-decl.c.

int enum_overflow [static]

Definition at line 98 of file c-decl.c.

Definition at line 122 of file c-decl.c.

Definition at line 80 of file c-decl.c.

Definition at line 83 of file c-decl.c.


Generated on Wed Apr 8 15:12:41 2009 for Open64 by  doxygen 1.5.6