aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog157
1 files changed, 145 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b4f247..b885df9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,8 +1,141 @@
+2004-03-23 Zack Weinberg <zack@codesourcery.com>
+
+ PR 12267, 12391, 12560, 13129, 14114, 14113
+
+ * c-tree.h: Forward declare struct c_binding. Declare
+ c_override_bindings_to_false. Update prototypes.
+ (struct lang_identifier): Update comments. Change fields to be
+ struct c_binding *.
+ (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
+ (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
+ (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
+ (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
+ * c-common.h: Update prototypes.
+ * c-decl.c (struct c_scope): Update commentary. Remove names,
+ names_last, parms, parms_last, tags, and shadowed fields. Add
+ bindings and depth fields.
+ (scope_freelist): Move to more appropriate location.
+ (c_print_identifier): Update for changes to struct lang_identifier.
+ (objc_mark_locals_volatile): Update for new bindings structures.
+ (global_bindings_p): Honor c_override_global_bindings_to_false.
+ (pushlevel): Rename to push_scope; take no arguments; use the
+ scope_freelist; initialize scope->depth and check for overflow.
+ (poplevel): Rename to pop_scope; totally rewritten for new bindings
+ structures.
+ (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
+ C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
+ Improve some commentary. Adjust handling of forward parm decls.
+ (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
+ Preserve C_DECL_IN_EXTERNAL_SCOPE.
+ (warn_if_shadowing): Correct indentation. Improve diagnostics.
+ (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
+ decls. Rewrite for new bindings structures. Improve commentary.
+ Eliminate the copy_node call.
+ (implicit_decl_warning): Use the "diag" idiom (as seen in
+ locate_old_decl) to reduce code duplication; call locate_old_decl
+ if appropriate. Relocate to remove need for forward declaration.
+ (implicitly_declare): Adjust for new bindings structures. Kludge
+ around Objective-C not-really-builtin functions.
+ (undeclared_variable): Improve diagnostics. If current_function_decl
+ is nonnull but current_function_scope is null, use current_scope.
+ Use bind.
+ (lookup_tag): Adjust for new bindings structures. Kludge around
+ Objective-C's tag declarations that wind up in the external scope.
+ (lookup_name): Adjust for new bindings structures. Kludge around
+ c-common.c's pseudo-typedefs that wind up in the external scope.
+ (lookup_name_current_level): Rename lookup_name_in_scope; take a
+ second argument indicating the scope to examine; rewrite for
+ new bindings structures.
+ (c_init_decl_processing): Adjust for renamed functions. Do not
+ initialize current_file_decl, first_builtin_decl, last_builtin_decl.
+ First scope pushed is the external scope, not the global scope.
+ (builtin_function): Use bind, not pushdecl. Adjust other bits
+ for new data structures. Keep track of builtins that should be
+ made visible automatically.
+ (start_decl): Adjust diagnostics. Remove unnecessary call to
+ expand_decl.
+ (grokparms): Return 0 if arg_types is error_mark_node.
+ (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
+ reversed sense. Rewrite for new bindings structures. Do not
+ leave any decls in the scope, to prevent pop_scope from doing
+ contradictory things with them.
+ (finish_struct, finish_enum): Remove redundant diagnostics.
+ (build_enumerator): Don't cascade diagnostics for error_mark_node.
+ Mark location where -pedantic changes the meaning of the program.
+ (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
+ parameter decls into the function's scope structure using bind.
+ Warn here about function definitions in the wrong style.
+ Adjust diagnostics.
+ (store_parm_decls): Correct the determination of whether a
+ function was defined with a prototype.
+ (c_write_global_declarations): Operate on all file decls and on
+ the external scope. Split body of the loop to...
+ (c_write_global_declarations_1): ... this new function, to avoid
+ code duplication.
+ (truly_local_externals, first_builtin_decl, last_builtin_decl)
+ (make_scope, pop_scope, in_parm_level_p, set_block)
+ (any_external_decl, record_external_decl, bind_label, getdecls)
+ (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
+ (c_reset_state): Delete.
+ (visible_builtins, c_override_global_bindings_to_false)
+ (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
+ (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
+ (external_scope, binding_freelist, bind, free_binding_and_advance)
+ (push_file_scope, pop_file_scope): New.
+ (pushtag, pushdecl_top_level, lookup_label, declare_label)
+ (define_label, c_make_fname_decl, finish_decl)
+ (mark_forward_parm_decls, build_compound_literal)
+ (grokdeclarator, start_function, check_for_loop_decls)
+ (identifier_global_value, record_builtin_type): Minor adjustments
+ for new bindings structures. Improve diagnostics and commentary.
+ * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
+ pushlevel/poplevel respectively.
+ (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
+ * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
+ Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
+ correct loop over multiple translation units; call fatal_error if
+ requested to compile more than one file at once. (This disables
+ IMA temporarily - an up-front error being preferable to a crash.)
+ * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
+ (all actions): Adjust calls to pushlevel/poplevel.
+ (parsing_iso_function_signature): Delete.
+ (extdef_1): Fold into extdef.
+ (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
+ warn here about function definitions in the wrong style.
+ (after_tyle_declarator, parm_declarator_starttypename)
+ (parm_declarator_nostarttypename, notype_declarator): Remove
+ commented-out productions.
+ (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
+ an empty TREE_LIST node. Adjust calls to get_parm_info.
+ (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
+ to suppress -Wold-style-definition after this error.
+ (c_parse_file): Don't clear the binding stack or call
+ finish_fname_decls here. Correct comment.
+ * c-typeck.c (same_translation_unit_p): Export.
+ (common_type): Use c_override_global_bindings_to_false, not
+ pushlevel/poplevel/declare_parm_level.
+ * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
+ LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
+ and LANG_HOOKS_GETDECLS with do-nothing stubs.
+ * objc/objc-lang.c: Likewise.
+ * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
+ get_parm_info.
+ (OBJC_VOID_AT_END): Delete; replace all uses
+ with void_list_node.
+ (generate_forward_declaration_to_string_table): Delete.
+ * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
+
+ * coverage.c (create_coverage): Don't pushdecl anything.
+ * langhooks.c (lhd_clear_binding_stack): Call
+ lang_hooks.decls.poplevel, not poplevel.
+ * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
+ circular list rather than going into an infinite loop.
+
2004-03-23 Olivier Hainque <hainque@act-europe.fr>
- * optabs.c (expand_binop): When synthesizing double word rotates
- from single word shifts, use a new register target if the provided
- target is not a REG already.
+ * optabs.c (expand_binop): When synthesizing double word rotates
+ from single word shifts, use a new register target if the provided
+ target is not a REG already.
2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
@@ -198,8 +331,8 @@
* frontends.texi: Add missing line.
2004-03-21 Zack Weinberg <zack@codesourcery.com>
- Chris Devers <cdevers@pobox.com>
- Joseph S. Myers <jsm@polyomino.org.uk>
+ Chris Devers <cdevers@pobox.com>
+ Joseph S. Myers <jsm@polyomino.org.uk>
* doc/frontends.texi: Rewrite.
* doc/gcc.texi: Update last modification date.
@@ -404,7 +537,7 @@
(ir_sr70_icmp): Delete.
2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
-
+
* tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
(tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
(FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
@@ -462,12 +595,12 @@
2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
- * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
- for mixed mode.
- (rs6000_emit_prologue): Ditto.
- (rs6000_emit_epilogue): Ditto.
- * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
- macro for mixed mode.
+ * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
+ for mixed mode.
+ (rs6000_emit_prologue): Ditto.
+ (rs6000_emit_epilogue): Ditto.
+ * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
+ macro for mixed mode.
2004-03-18 Jan Hubicka <jh@suse.cz>