toplev.c (set_float_handler): Make static.
[gcc.git] / gcc / ChangeLog
index 3e0bc8e572f85a6e3f860653a5f997444baa2648..880b27b0df78dccdb75866e56a200f605524cac7 100644 (file)
@@ -1,3 +1,255 @@
+2001-08-11  Zack Weinberg  <zackw@panix.com>
+
+       * toplev.c (set_float_handler): Make static.
+       * toplev.h: Don't prototype set_float_handler.
+
+       * simplify-rtx.c: Don't include setjmp.h.
+       (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
+       New functions.
+       (simplify_unary_operation, simplify_binary_operation): Use them,
+       via do_float_handler.
+
+       * fold-const.c: Don't include setjmp.h.
+       (exact_real_inverse_1): New function.
+       (exact_real_inverse): Use it, via do_float_handler.
+
+       * varasm.c: Don't include setjmp.h.
+       (assemble_real_1): New function.
+       (assemble_real): Use it, via do_float_handler.
+       Call internal_error if we get a trap here.
+
+       * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
+       config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
+
+2001-08-11  Zack Weinberg  <zackw@panix.com>
+
+       * defaults.h: Define PREFERRED_STACK_BOUNDARY to
+       STACK_BOUNDARY if not already defined.
+
+       * calls.c, function.c, reload1.c, explow.c: Don't default
+       PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
+       PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
+
+       * explow.c (allocate_dynamic_stack_space): Change unsafe #if
+       to run-time test.
+
+       * doc/tm.texi: Document that STACK_BOUNDARY is required;
+       clarify difference between it and PREFERRED_STACK_BOUNDARY.
+
+2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppmacro.c (enter_macro_context): Push macro expansions even
+       if empty.
+
+2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * config/rs6000/rs6000.c: Include integrate.h to silence warning.
+       (rs6000_elf_section_type_flags): Actually return a value.
+
+2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
+       * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux: 
+       Clean up code: add missing comments and prototypes, fix warnings,
+        remove obsolete code, fix spacing to conform to coding style.
+
+2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
+       * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
+       and TARGET_ASM_CLOSE_PAREN.
+       (regclass_map): CC register belongs to class NO_REGS.
+       (legitimize_pic_address): Don't generate unnecessary moves 
+       (to avoid confusing loop optimization).
+       (check_and_change_labels): Replace jump_long by indirect_jump.
+       (s390_final_chunkify): Don't start a new literal pool on section 
+       switch in 64-bit code.
+       (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
+       
+       * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
+       (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
+       (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer 
+       modes correctly.
+       (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
+       (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
+       (CONST_COSTS): Fixed incorrect costs.
+
+       * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
+       Use emit_jump instead of emit_jump_insn (gen_jump).
+       (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting 
+       (to avoid confusing flow analysis).
+       (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
+       (casesi, casesi_jump): New.
+       (jump_long): Removed.  Functionality merged into indirect_jump.
+       (indirect_jump): Accept address_operand, not just register_operand.
+       (cjump_long, icjump_long): Use same logic as indirect_jump.
+       (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
+       Fixed broken setjmp/longjmp handling.
+       (do_builtin_setjmp_setup): Removed.
+
+       * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
+       broken GNU as versions that don't accept .quad with large
+       negative values.  Use hexadecimal output instead.
+       (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
+       (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
+       FUNCTION_EPILOGUE): Removed.  Now in targetm.
+
+       * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
+
+       * config/s390/fixdfdi.h: Add missing copyright statement.
+       Fix type conflicts on 64-bit.  Add missing SFmode routines.
+
+       * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
+       email address.
+
+2001-08-11  Richard Henderson  <rth@redhat.com>
+
+       * rtl.h (REG_EH_RETHROW): Remove.
+       * rtl.c (reg_note_name): Update.
+       * combine.c (distribute_notes): Don't check for it.
+
+2001-08-11  Richard Henderson  <rth@redhat.com>
+
+       * combine.c (distribute_notes): Place REG_SETJMP.
+
+2001-08-11  Richard Henderson  <rth@redhat.com>
+
+       * doc/extend.texi (Arrays and pointers implementation): Discourage
+       relying on sign-extension of pointers.
+
+2001-08-11  H.J. Lu <hjl@gnu.org>
+
+       * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
+       in_dtors.
+       (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
+       RDATA_SECTION_ASM_OP.
+
+2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * doc/install.texi (Specific, c4x): Fix cross-reference to the
+       main manual to work both for info and HTML versions.
+       
+2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
+           Matt Kraai <kraai@alumni.carnegiemellon.edu>
+       
+       * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
+       * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
+       (struct cpp_pool): New member first.
+       * cppinit.c (append_include_chain): Plug memory leaks.
+       * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
+       Allocate pragma structures from the (aligned) macro pool to
+       avoid leaking memory.
+       * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
+       so we don't leak memory.
+       * hashtable.c (ht_destroy): New.
+       * hashtable.h (ht_destroy): New.
+
+2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
+           Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * c-lex.c (map): Make const.
+       (cb_file_change): Update for callback passing a line map.
+       Don't assume we have a previous map.  Remove sanity check
+       about popping too many files.
+       * cpperror.c (print_location): Make map const.
+       * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
+       (cpp_make_system_header): Similarly.
+       (search_from): Similarly.
+       (_cpp_execute_include): Don't remember where we came from.
+       * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
+       (struct cpp_reader): Make map const.
+       (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
+       * cpplib.c (do_line): Update; line maps now hold sysp.
+       (cpp_push_buffer): Similarly.
+       (_cpp_do_file_change): Similarly; callback with map instead.
+       (cpp_get_line_maps): Constify return value.
+       (_cpp_pop_buffer): Update.
+       * cpplib.h (struct cpp_file_change): Remove.
+       (struct cpp_callbacks): Update.
+       (cpp_get_line_maps): Constify return value.
+       * cppmacro.c (_cpp_create_definition): Update.
+       * cppmain.c (struct printer): Constify map.
+       (maybe_print_line): Similarly.
+       (print_line): Similarly.  Deduce flags 1 and 2 here.
+       (cb_file_change): Update.
+       * line-map.c (free_line_maps): Warn regardless.
+       (add_line_map): Return pointer to const.  When passed NULL to_file
+       with LC_LEAVE, use the obvious values for the return point so the
+       caller doesn't have to figure them out.
+       (lookup_line): Return pointer to const.
+       (print_containing_files): Take pointer to const.
+       * line-map.h (struct line_map): New members reason, sysp.
+       (add_line_map): Return pointer to const.
+       (lookup_line): Similarly.
+       (print_containing_files): Take pointer to const.
+
+2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
+           Richard Henderson  <rth@redhat.com>
+
+       * regmove.c (regmove_optimize): Avoid setting a register twice in
+       a parallel set.
+
+2001-08-10  Richard Henderson  <rth@redhat.com>
+
+       * doc/extend.texi (Arrays and pointers implementation): Document
+       behavior of pointer/integer conversion.
+
+2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
+       * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
+
+2001-08-10  Richard Henderson  <rth@redhat.com>
+
+       * doc/extend.texi (C Implementation): New chapter.
+       * doc/gcc.texi (Top): Link it in.
+
+2001-08-10  Andrew Cagney  <ac131313@redhat.com>
+
+       * doc/install.texi (Specific): Fix CVS merge botch.
+
+2001-08-10  Richard Henderson  <rth@redhat.com>
+
+       * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
+       ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
+
+2001-08-10  Zack Weinberg  <zackw@stanford.edu>
+
+       * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
+       if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
+       this macro is now required.
+
+       * cselib.c (cselib_process_insn), flow.c (propagate_block),
+       loop.c (find_and_verify_loops), reload.c (reload): Check
+       for rtx code of CALL_INSN, not CALL, when deciding if we
+       need to check for REG_SETJMP note.
+
+       * gcse.c (compute_hash_table, compute_store_table): Update
+       the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
+       logic.
+
+       * config/avr/avr.c: Fix typo.
+       * config/convex/convex.c (expand_movstr): Use adjust_address.
+       * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
+       variable.
+       * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
+       * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
+       Fix typo.
+       * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
+       Do define STACK_BOUNDARY.
+       * config/i370/i370.c: Include expr.h.
+       * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
+       config/pa/som.h, config/v850/v850.h: Take in_ctors and
+       in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
+       and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
+       * config/m88k/m88k.c: Include c-tree.h after expr.h.
+       * config/pdp11/pdp11.c: Include expr.h and toplev.h.
+       * config/romp/romp.c: Include expr.h after tree.h.
+       Include toplev.h.
+       (output_fpop): Use xmalloc, not oballoc.
+       * config/we32k/we32k.c: Include expr.h.
+
+2001-08-10  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.h: Fix formatting.
+
 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
 
        * c-common.h (RETURN_NULLIFIED_P): Lose.
 
 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
-       * stmt.c (expand_null_return_1): Remove code to generate simple returns 
+       * stmt.c (expand_null_return_1): Remove code to generate simple returns
        and "use_goto" argument.
        (expand_null_return, expand_value_return): Update all callers.
        * function.c (expand_function_end): Remove code to generate simple
        (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
        (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
        * config/c4x/c4x.c: Move include of tree.h.
-       * config/clipper/clipper.c (clix_asm_out_constructor): New.     
+       * config/clipper/clipper.c (clix_asm_out_constructor): New.
        (clix_asm_out_destructor): New.
        * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
        (ASM_OUTPUT_DESTRUCTOR): Remove.
@@ -1788,6 +2040,22 @@ Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
        * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
        variable access.
 
+2001-07-26  Andrew Haley  <aph@redhat.com>
+       Joern Rennecke <amylaar@redhat.com>
+
+       * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
+       (SUBTARGET_CPP_ENDIAN_SPEC): New.
+       (SUBTARGET_CPP_SPEC): New.
+       (CPP_SPEC): Remove.
+       * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
+       (SUBTARGET_CPP_PTR_SPEC): New.
+       (CPP_DEFAULT_CPU_SPEC): New.
+       (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
+       SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
+       (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
+       SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
+       (SUBTARGET_CPP_SPEC): Define as an empty string.
+
 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
        * doc/install.texi (Configuration): Properly link the host