c-decl.c (struct c_binding): Remove contour field; add depth, invisible, nested fields.
authorZack Weinberg <zack@gcc.gnu.org>
Sat, 3 Jul 2004 02:35:05 +0000 (02:35 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Sat, 3 Jul 2004 02:35:05 +0000 (02:35 +0000)
commit9aaabf8aa725651f3e77826d86a2fb50a3f2745b
tree5f3741dfcf03c7efdb7ed86105d521508a573a4a
parentece95d900ed3c5224e591f3eb98234945aa3b942
c-decl.c (struct c_binding): Remove contour field; add depth, invisible, nested fields.

* c-decl.c (struct c_binding): Remove contour field; add
depth, invisible, nested fields.
(B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
(B_IN_EXTERNAL_SCOPE): New convenience macros.
(bind): Add invisible and nested arguments. Initialize
new fields of struct c_binding; adjust loop scanning for
insertion point.
(free_binding_and_advance): Clear structure with memset.
(pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
in file scope, even if it's in external scope too.
(pushdecl): Adjust to match.  Create invisible file-scope
declarations for block-scope forward declarations of static functions.
(pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
(undeclared_variable, lookup_label, declare_label, define_label)
(lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
(c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
(store_parm_decls_oldstyle): Adjust to match.
(diagnose_mismatched_decls): Correct handling of linkage clashes.
(merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.

* c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
(C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.

From-SVN: r84046
gcc/ChangeLog
gcc/c-decl.c
gcc/c-tree.h