OSDN Git Service

update copyrights
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d6b8858..0a74c9a 100644 (file)
@@ -1,3 +1,545 @@
+2001-01-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (expand_builtin_strncmp): Use host_integerp and
+       tree_low_cst.  Allow using cmpstrsi in more cases.
+
+Wed Jan  3 10:48:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
+       sized types.
+
+Wed Jan  3 12:22:32 2001  Alexandre Oliva  <aoliva@redhat.com>
+
+       * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
+       * Makefile.in (HOST_CFLAGS): Mention build-make.
+
+Wed Jan  3 08:53:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
+       as JUMP_INSN.
+
+2001-01-01  Bernd Schmidt  <bernds@redhat.com>
+
+       * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
+       a REG rtx.
+
+       * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg.  All
+       callers changed.
+
+       * alias.c (throughout): Use ORIGINAL_REGNO when accessing
+       reg_base_value and reg_known_value arrays.
+       (init_alias_analysis): Add more cases to detect known values.
+       * sched-deps.c (deps_may_trap_p): New function.
+       (sched_analyze_2): Use it.
+
+2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * combine.c (simplify_shift_const): Even if we're sign-extracting,
+       don't discard an ASHIFTRT if we're shifting in a wider mode.
+
+2000-01-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * toplev.c (rest_of_compilation): Don't print basic block information
+       when CFG isn't up to date.
+
+2001-01-02  Mark Elbrecht  <snowball3@bigfoot.com>
+
+       * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
+       (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
+       (UNALIGNED_SHORT_ASM_OP): Define.
+       (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
+
+2001-01-02  Mark Mitchell  <mark@codesourcery.com>
+
+       * fold-const.c (fold_convert): Fix typo.
+
+2001-01-02  Richard Henderson  <rth@redhat.com>
+
+       * c-common.h (ASM_INPUT_P): New.
+       * c-parse.in (asm): Set it when needed.
+       * c-semantics.c (genrtl_asm_stmt): Test it instead of the 
+       existance of an operand.
+
+Tue Jan  2 20:27:07 MET 2001  Jan Hubicka  <jh@suse.cz>
+
+       * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
+       (dwarf2out_frame_debug_expr): Likewise.
+       (mem_loc_descriptor): Handle PRE and POST_MODIFY.
+
+Tue Jan  2 20:21:31 MET 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_split_to_parts): Return number of part required;
+       handle TFmodes.
+       (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
+       TFmodes.
+       (ix86_split_long_move): Use number of part returned
+       by ix86_split_to_parts
+       * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
+       New macros.
+       (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
+       (LONG_DOUBLE_TYPE_SIZE): Change from constant.
+       (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
+       (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
+       (ALIGN_MODE_128): Add TFmode.
+       (IS_STACK_MODE): Likewise.
+       (HARD_REGNO_NREGS): TFmode needs 3 registers.
+       (HARD_REGNO_OK): Support TFmodes.
+       (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
+       * i386.md (scheduler definitions): Use memory operand to determine
+       fst/fld instructions; use mode attribute to determine real mode of
+       the instruction.
+       (*tf): New patterns, expanders and splitters; based on XFmode patterns.
+       * invoke.texi (128bit-long-double, 96bit-long-double): Document.
+
+2001-01-02  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.def (TRUTH_NOT_EXPR): Improve documentation.
+
+Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
+
+       * expr.c (store_constructor_field): Update ALIGN before calling
+       store_constructor.
+
+2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
+       host_integerp.
+
+2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
+       incomplete type.
+
+Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
+
+       * c-decl.c (start_function): Don't warn on third parameter to main.
+
+2001-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * tsystem.h: Define HAVE_DECL_GETOPT.
+
+2001-01-02  Philip Blundell  <pb@futuretv.com>
+
+       * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber 
+       of input operand.
+
+2001-01-02  Richard Henderson  <rth@redhat.com>
+
+       * alpha.md (*ze_and_ne): Duplicate insn condition to split.
+
+2001-01-02  Andreas Jaeger  <aj@suse.de>
+
+       * c-decl.c (c_decode_option): Remove support of
+       -Wmissing-noreturn.
+
+       * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
+       (W_options): Add -Wmissing-noreturn here.
+
+       * flow.c: Define lang_missing_noreturn_ok_p.
+       (check_function_return_warnings): Use it.
+
+       * c-common.h: Declare lang_missing_noreturn_ok_p.
+
+       * c-lang.c (c_missing_noreturn_ok_p): New function.
+       (lang_init): Set lang_missing_noreturn_ok_p.
+
+       * invoke.texi (Warning Options): Document this.
+
+2000-12-27  Phil Edwards  <pme@sources.redhat.com>
+
+       * extend.texi (C++ Extensions):  New node for C++ attributes;
+         describe init_priority and com_interface.
+       * invoke.texi:  Remove -finit-priority as it now has zero effect.
+       * install.texi:  Fix xref syntax.
+       * md.texi:  Likewise.
+
+Mon Jan  1 21:28:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config.gcc (sparc64-wrs-vxworks*): New case.
+       * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
+
+       * config/sparc/sparc.c (sparc_override_options): Do support different
+       pointer and architecture size.
+       * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
+       (POINTERS_EXTEND_UNSIGNED): Define.
+       (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
+       (FUNCTION_MODE): Define to be Pmode.
+       * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
+
+       * function.c (expand_function_end): Properly handle DECL_RESULT
+       and copy when ptr_mode != Pmode.
+       * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
+
+2001-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (c_common_nodes_and_builtins): Set prototype
+       parameters for __builtin_fputs, __builtin_fputc and
+       __builtin_fwrite.  Don't declare plain fputc as a builtin.
+
+2001-01-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+        * loop.c (add_label_notes): Increment the label usage count when
+        a note is added to an insn which refers to a CODE_LABEL.
+        * gcse.c (add_label_notes): Likewise.
+
+2001-01-01  Andreas Jaeger  <aj@suse.de>
+
+       * loop.c (scan_loop): Use xmalloc to allocate movables.
+
+2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
+       * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
+       * reload1.c (REGISTER_MOVE_COST): Likewise.
+       * regclass.c (REGISTER_MOVE_COST): Likewise.
+       (move_cost, may_move_in_cost, may_move_out_cost): Add mode
+       dimension.  Adjust all users.
+       (init_reg_sets_1): Iterate on all modes.
+       * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
+       * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
+       * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
+       * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
+       * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
+       * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
+       * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
+       * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
+       * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
+       * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
+       * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
+       * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
+       * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
+       * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
+       * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
+       * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
+       * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
+       * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
+       * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
+       * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
+       * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
+       * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
+       * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
+       * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
+       * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
+       * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
+       * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
+
+2001-01-01  Bernd Schmidt  <bernds@redhat.com>
+
+       * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
+       arg VARIES_P.  Call it with extra arg.
+       (true_dependence): Likewise.
+       * rtl.h (rtx_addr_can_trap_p): Declare.
+       (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
+       prototypes.
+       * rtlanal.c (rtx_addr_can_trap_p): No longer static.
+       (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
+       pic offset table register if it's zero.  All callers changed.
+       (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
+
+Mon Jan  1 07:38:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * explow.c (convert_memory_address, case SYMBOL_REF): Copy
+       STRING_POOL_ADDRESS_P.
+
+       * config/sparc/sparc.c (input_operand): Properly test for short op.
+
+       * config.gcc (sparc-*-elf): Include sparc/sol2.h.
+       (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
+       (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
+       * config/sparc/elf.h: No longer include sol2.h.
+       * config/sparc/lifeelf.h: No longer include sparc/elf.h.
+       * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
+
+       * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
+
+2001-01-01  Michael Hayes  <mhayes@redhat.com>
+
+       * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
+       (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
+       (record_initial): Likewise.
+       * unroll.c (copy_loop_body, loop_iterations): Likewise.
+       (remap_split_bivs): Likewise.
+
+2001-01-01  Michael Hayes  <mhayes@redhat.com>
+
+       * loop.c (loop_ivs_free): New function.
+       (strength_reduce): Break out from...
+
+2001-01-01  Michael Hayes  <mhayes@redhat.com>
+
+       * loop.h (struct iv): New.
+       (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
+       (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
+       'reg_biv_class' fields with 'regs' and 'n_regs'.
+       (struct ivs): Rename 'loop_iv_list' field to 'list'.
+       * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
+       * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
+
+2000-12-31  Alexandre Oliva  <aoliva@redhat.com>
+
+       * resource.c (mark_referenced_resources): Abort() before
+       attempting to mark a pseudo register.
+       (mark_set_resources): Likewise.
+
+2001-01-01  Michael Hayes  <mhayes@redhat.com>
+
+       * loop.h (REG_IV_CLASS): New accessor macro.
+       * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
+       * unroll.c (REG_IV_CLASS): Likewise.
+
+Sun Dec 31 19:20:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): New.
+       (loc_descriptor_from_tree, case SAVE_EXPR): New.
+
+2001-01-01  Michael Hayes  <mhayes@redhat.com>
+
+       * loop.c (loop_giv_reduce_benefit): Break out from strength_reduce.
+       (loop_givs_dead_check, loop_givs_reduce, loop_givs_rescan): Likewise.
+       (prescan_loop): Set pre_header_has_call in loop_info.
+       * loop.h (struct_iv_class): Add `final_value' and `all_reduced'.
+       (struct loop_info): Add `pre_header_has_call'.
+
+       * loop.c (loop_bivs_find): Break out from strength_reduce.
+       (loop_bivs_init_find, loop_bivs_check, loop_givs_find): Likewise.
+       (loop_givs_check, loop_biv_eliminable_p): Likewise.
+
+       * loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Define.
+       (scan_loop, record_giv): Use LOOP_REG_LIFETIME and LOOP_REG_GLOBAL_P.
+
+       * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Define.
+       * loop.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Use in place of
+       direct access to uid_luid array.
+       * unroll.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Likewise.
+
+       * loop.h (struct loop_movables): New.
+       (LOOP_MOVABLES): New.
+       (struct loop_info): Add movables field.
+       * loop.c (struct movables): Delete.  Replace all uses
+       with struct loop_movables.
+       (the_movables): Delete.  Replace all uses with movables
+       field in loop_info.
+       (loop_movables_add, loop_movables_free): New functions.
+       (scan_loop): Use xmalloc instead of alloca for movables.
+       Call loop_movables_free.
+
+       * loop.c (debug_loops): New.
+
+2000-12-31  Philip Blundell  <philb@gnu.org>
+
+       * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm
+       operands.
+
+2000-12-30  Richard Henderson  <rth@redhat.com>
+
+       * dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC.
+       Initialize variables properly for DBX_LBRAC_FIRST.
+
+2000-12-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change.
+
+2000-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (validate_arglist): New function, use it.
+
+2000-12-30  Philip Blundell  <philb@gnu.org>
+
+       * config/arm/arm.c (arm_expand_prologue): Fix typos in error
+       message and comment.  Note location of testcase for an unhandled
+       situation.
+
+2000-12-30  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * defaults.h (BUILD_VA_LIST_TYPE): New definition.
+       * tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node
+       is a copy, not an alias.
+
+2000-12-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * calls.c (calls_function_1, case CONSTRUCTOR): New case.
+
+       * alias.c (alias_sets_conflict_p): New function.
+       (mems_in_disjoint_alias_sets_p): Use it.
+       (readonly_fields_p): Moved from expr.c; check for record type.
+       (objects_must_conflict_p): New function.
+       * calls.c (expand_call): Use assign_temp as much as possible, use
+       readonly variant if assigned once, and don't set memory attributes.
+       (emit_library_call_value_1, store_one_arg): Likewise.
+       * integrate.c (expand_inline_function): Likewise.
+       * stmt.c (expand_asm_operands, expand_return): Likewise.
+       * expr.c (copy_blkmode_from_reg, store_constructor): Likewise.
+       (store_field, save_noncopied_parts, expand_expr): Likewise.
+       (expand_expr_unaligned): Likewise.
+       (readonly_fields_p): Moved to alias.c.
+       (safe_from_p): Rework handling of SAVE_EXPR.
+       MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF.
+       * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE.
+       (assign_stack_for_temp): Use objects_must_confict_p.
+       Set all memory attributes from type, if specified.
+       (mark_temp_slot): Mark TYPE field.
+       * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls.
+       (objects_must_conflict_p): Likewise.
+
+       * stmt.c (expand_decl): Don't use assign_stack_temp in error case.
+       (add_case_node): No need to copy nodes anymore.
+
+2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/sh/sh.c (split_branches): Don't dereference re-computed
+       `beyond' before checking it's non-NULL.
+
+2000-12-29  Robert Lipe <robertl@sco.com>
+
+       Remove COFF support from i?86-pc-sco3.2v5.
+       * i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II.
+       (TARGET_ELF): Now always true.
+       (SUBTARGET_SWTICHES: )Remove -mcoff.
+
+       * i386/t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+       MULTILIB_EXCEPTION): Nuke coff.
+       (CRTSTUFF_T_CFLAGS_S):  Deleted.
+       (TARGET_LIBGCC2_CFLAGS): Added.
+
+2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
+       twice.  Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
+       modifies them.
+
+2000-12-29  Bernd Schmidt  <bernds@redhat.com>
+
+       * ia64.c (ia64_expand_load_address): Accept additional scratch
+       register argument.  All callers & prototype changed.
+       Use scratch register when generating load_symptr insns.
+       * ia64.md (movdi_symbolic): Clobber a scratch register.  Use it
+       when calling ia64_expand_load_address.
+       (movdi): Generate movdi_symbolic with additional operand.
+       (load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1).
+       (load_symptr): Likewise.  Use additional operand as a scratch
+       register instead of generating it here.
+
+       * basic-block.h: Add a comment.
+       * flow.c (PROP_POSTRELOAD): New macro.
+       (update_life_info): Add it to prop_flags.
+       (mark_set_1): If it is set, compute REG_N_SETS for the original
+       register number of a hard reg.
+
+       * emit-rtl.c (gen_raw_REG): New function.
+       (gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of
+       gen_rtx_raw_REG.
+       * print-rtl.c (print_rtx): Print ORIGINAL_REGNO.
+       * final.c (alter_subreg): Update it.
+       * regrename.c (do_replace): Likewise.  Use gen_raw_REG.
+       * rtl.def (REG): Update comment.
+       * rtl.h (X0UINT, ORIGINAL_REGNO): New macros.
+       (gen_raw_REG): Declare.
+
+2000-12-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (get_set_constructor_bits): Use host_integerp and
+       tree_low_cst.
+
+       * local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN.
+
+       * toplev.c (main): Call xmalloc_set_program_name.
+       * gcc.c (main): Likewise.
+
+2000-12-29  Philip Blundell  <philb@gnu.org>
+
+       * config/arm/arm.c (arm_override_options): Fix typo in warning
+       message.
+
+2000-12-29  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_expand_block_move): Initialize
+       src_align and dst_align in bits.  Do unaligned quadword loads
+       if possible for BWX too.
+       (alpha_expand_block_clear): Initialize align in bits.  Track
+       small leading offsets into a larger alignment.  Play games with
+       stq_u for large 4-byte aligned blocks.  Use load/mask/store
+       for appropreately aligned heads and tails.
+
+2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * function.c (assign_parms): Convert arguments passed by
+       reference to the right mode.
+
+2000-12-28  Geoffrey Keating  <geoffk@redhat.com>
+
+       * c-parse.in (select_or_iter_stmt): Use truthvalue_conversion
+       on the condition of a FOR statement, so that it gets typechecked
+       and optimised.
+
+2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * c-decl.c (grokdeclarator): Prevent crash in case of overflow in
+       array size.
+
+       * calls.c (emit_library_call_value_1): Add to call_fusage the
+       stack slot assigned to argument passed by reference.
+
+2000-12-28  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * toplev.h (extern really_sorry): Remove extern declaration for
+        nonexistent function.
+
+2000-12-28  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * varasm.c (initializer_constant_valid_p): Indicate subtraction of
+       pointers to the same string constant is absolute.
+
+2000-12-28  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (enum format_type): Add strfmon_format_type.
+       (decl_attributes): Handle format attributes strfmon and
+       __strfmon__.
+       (FMT_FLAG_USE_DOLLAR, FMT_FLAG_ZERO_WIDTH_BAD,
+       FMT_FLAG_EMPTY_PREC_OK): Define.
+       (format_char_info): Update comment for flag_chars.
+       (format_flag_spec): Add skip_next_char.
+       (format_kind_info): Add left_precision_char.
+       (printf_flag_specs, scanf_flag_specs, strftime_flag_specs,
+       format_types): Update for these new structure members and flags.
+       (time_char_table): Make const.
+       (strfmon_length_specs, strfmon_flag_specs, strfmon_flag_pairs,
+       monetary_char_table): New.
+       (format_types): Add details of strfmon formats.
+       (init_function_format_info): Create default attribute for strfmon.
+       (check_format_info_main): Check the new flags.  Handle
+       skip_next_char and left precision.
+       * toplev.c (documented_lang_options): Update description of
+       -Wformat.
+       * extend.texi: Document strfmon format attributes.  Document
+       attribute forms such as __printf__.  Clarify format_arg attribute
+       documentation.
+       * invoke.texi (-Wformat): Update for strfmon formats.
+
+2000-12-28  Andreas Jaeger  <aj@suse.de>
+
+       * expmed.c (store_bit_field): Fix last patch.
+
+2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/sh/crt1.asm (start_l): `__SH4_SINGLE_ONLY__' was missing
+       the trailing `__'.
+
+2000-12-28  Alan Lehotsky  <lehotsky@tiac.net>
+
+       * expmed.c (store_bit_field): Correctly compute smallest mode that
+       is sufficient to contain all bits we are storing.
+
+2000-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (build_function_call_expr): New function.  Use it
+       everywhere in lieu of manually constructing a CALL_EXPR.
+
+2000-12-27  Chandrakala Chavva  <cchavva@redhat.com>
+
+       * calls.c (store_one_arg):  If parm is passed both in stack and in
+        register and offset is greater than reg_parm_stack_space, split
+        the offset and call emit_push_insn().
+
 2000-12-27  Nick Clifton  <nickc@redhat.com>
 
        * ifcvt.c (noce_emit_store_flag): Handle jump insns that are
        between conditionally executed insns.
        (sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free
        dependency lists if current insn is a COND_EXEC.
+
 2000-12-27  Geoffrey Keating  <geoffk@redhat.com>
 
        * config/rs6000/rs6000.md (define_attr "length"): Correct
        (arm_expand_prologue): If the link register has not been saved set
        lr_save_eliminated and emit a USE to prevent later passes from
        scavenging it.
-       
+
        * dwarf2out_frame_debug_expr: Allow the (scratch) frame
        pointer to be initialised from the stack pointer plus a
        constant.
 
        * dwarf2out.c (file_info_cmp): Prototype.
        (dwarf2out_line): Hide variable `old_in_use'.
-       
+
        * objc-act.c (objc_fatal): Delete.
 
        * sched-vis.c (visualize_stall_cycles): Remove unused variable.
        (nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1,
        bundle_selector): New patterns.
        (insn_group_barrier): Now has an operand.
-       
+
 2000-12-21  DJ Delorie  <dj@redhat.com>
 
        * dwarf2out.c (simple_decl_align_in_bits): new
@@ -563,9 +1105,9 @@ Sun Dec 17 12:41:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
 
-       * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.      
+       * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.
        (c4x_output_ascii):  Fix.
-       
+
 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
@@ -584,7 +1126,7 @@ Sun Dec 17 12:41:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
 
 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
-       
+
        * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
        * libgcc2.c (__absvsi2): Use Wtype and DWtype.
        (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
@@ -626,8 +1168,8 @@ Sat Dec 16 10:41:11 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
         (do_warning): New function.
         (finclude): Skip past the newline and increase the line number
         before calling output_line_command.
-        (do_line): Skip the new line after output_line_command.  Don't  
-        pre-decrement the line number.   
+        (do_line): Skip the new line after output_line_command.  Don't
+        pre-decrement the line number.
 
 2000-12-15  Diego Novillo  <dnovillo@redhat.com>
 
@@ -692,7 +1234,7 @@ Fri Dec 15 03:37:51 2000  J"orn Rennecke <amylaar@redhat.com>
        * alias.c (get_alias_set): Call record_component_aliases for
        COMPLEX_TYPE.
        (record_component_aliases): Handle COMPLEX_TYPE.
-       
+
 2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * fixinc/gnu-regex.c: Disable NLS.
@@ -714,7 +1256,7 @@ Fri Dec 15 03:37:51 2000  J"orn Rennecke <amylaar@redhat.com>
        * gcc.c (cpp_options): Update to use '&'.
        (struct switchstr): Change type of validated to save space.
        New member 'ordering'.
-       (handle_braces, validate_switches): Update to handle '&'.       
+       (handle_braces, validate_switches): Update to handle '&'.
 
 2000-12-13  Laurynas Biveinis  <lauras@softhome.net>
 
@@ -758,7 +1300,7 @@ Fri Dec 15 03:37:51 2000  J"orn Rennecke <amylaar@redhat.com>
         * tradcpp.c (special_symbol): Improve test for definedness,
         though it is still not perfect.
         (do_define): Don't define illegal macro names.
-       
+
 2000-12-07  Aldy Hernandez  <aldyh@redhat.com>
 
         * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
@@ -867,7 +1409,7 @@ Mon Dec 11 13:51:09 2000  Jeffrey A Law  (law@cygnus.com)
        * cppfiles.c (stack_include_file): Update.
        (_cpp_pop_file_buffer): Update.
        * cpphash.h (struct cpp_buffer): New members
-       include_stack_listed and type.   
+       include_stack_listed and type.
        * cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
        (run_directive): Take buffer type.  cpp_push_buffer cannot fail.
        (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
@@ -901,7 +1443,7 @@ Mon Dec 11 13:51:09 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-09  Richard Henderson  <rth@redhat.com>
 
-       * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and 
+       * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and
        STRICT_LOW_PART as SET_DEST have in-out constraints.
 
 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
@@ -1670,8 +2212,8 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 2000-12-02  Geoffrey Keating  <geoffk@redhat.com>
 
        * c-common.c (combine_strings): When the ISO C standard specifies
-       the maximum length of a string, it doesn't include the trailing
-       zero byte.
+       the maximum length of a string, it doesn't include the trailing
+       zero byte.
 
        * cpplib.c (do_ifdef): Add check_eol() call.
        (do_ifndef): Likewise.
@@ -1793,13 +2335,13 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 2000-12-01  Jim Blandy  <jimb@redhat.com>
 
        * dbxout.c (dbxout_parms): Correctly describe parameters passed by
-       invisible reference in registers, but then spilled to the stack.
-       Remove code to emit a second stab for such parameters; it attempts
-       to describe the value's location by introducing a synthetic C++
-       `reference' type, and then saying the stack slot has that
-       reference type.  This loses type information (breaking GDB's
-       `ptype' command, among other things) just to describe a location
-       which stabs can represent correctly in other ways.
+       invisible reference in registers, but then spilled to the stack.
+       Remove code to emit a second stab for such parameters; it attempts
+       to describe the value's location by introducing a synthetic C++
+       `reference' type, and then saying the stack slot has that
+       reference type.  This loses type information (breaking GDB's
+       `ptype' command, among other things) just to describe a location
+       which stabs can represent correctly in other ways.
 
 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
 
@@ -2354,7 +2896,7 @@ Mon Nov 27 17:29:44 2000  kaz Kojima <kkojima@rr.iij4u.or.jp>
        canonicalizes conditional compares.
        (arm_select_cc_mode): Likewise.
        * arm.md: Garbage collect some dead code.
-       (cmp_and, cmp_ior): New patterns.
+       (cmp_and, cmp_ior): New patterns.
        (splitter for conditional move with inverted false): Use cond_exec
        and handle unordered comparisons.
 
@@ -2371,7 +2913,7 @@ Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
        arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
        anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
        one_cmpldi2): Merge with splitters to create define_insn_and_split
-       patterns.  Remove redundant splits.
+       patterns.  Remove redundant splits.
        (peephole2 for add:SI of invalid immediate): New.
        (peephole2 for minus:SI of invalid immediate): New.
        (peephole2 for ior:SI of invalid immediate): New.
@@ -7091,7 +7633,7 @@ Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
        * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
        UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
        * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
-       UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
+       UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
        PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
        * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
        * varasm.c (ASM_STABS_OP): Here.