* configure.in: Reorganize handling of *-*-gnu*, to share target
specific make details with Linux. Update comments to clarify
the distinction between GNU/Linux and GNU/Hurd.
* config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from
config/t-linux for the Hurd.
From-SVN: r37870
* config/mn10200/udivmod.c, config/mn10200/divmod.c,
config/mn10200/udivmodsi4.c: Moved from here.
* config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
* config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
C division functions.
* config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
From-SVN: r37868
* pa.md: Remove hack from all index insns to reverse the operand
order of frame and stack pointer references incorrectly created
in the reload pass.
From-SVN: r37864
* function.h (emit_status): Delete member regno_pointer_flag and
rename regno_pointer_flag_length to regno_pointer_align_length.
Delete define for REGNO_POINTER_FLAG.
* integrate.h (inline_remap): Delete member regno_pointer_flag.
Add member x_regno_reg_rtx.
* rtl.h (rtx_def): Use frame_related bit to indicate register is
a pointer in REG expressions. Define REG_POINTER macro.
* alias.c (find_base_value, find_base_term): Use REG_POINTER
instead of REGNO_POINTER_FLAG.
* combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
* emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
of regno_pointer_flag_length. Remove code which refers to
regno_pointer_flag.
(mark_reg_pointer): Use REG_POINTER.
(free_emit_status): Remove code which refers to regno_pointer_flag.
(init_emit, mark_emit_status): Likewise.
* flow.c (dump_flow_info): Likewise.
* function.c (preserve_temp_slots): Likewise.
* integrate.c (expand_inline_function, copy_rtx_and_substitute):
Use x_regno_reg_rtx instead of regno_pointer_flag for function
pointer determination in map.
* loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
* predict.c (estimate_probability): Likewise.
* regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
* unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
regno_pointer_flag for function pointer determination in map.
* convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
REG_POINTER.
* pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
Use REG_POINTER.
(restore_unscaled_index_insn_codes): Revise comment.
From-SVN: r37863
* expr.h (store_by_pieces): Add prototype.
(can_store_by_pieces): Likewise.
* expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
(can_store_by_pieces): New.
(store_by_pieces): New.
(clear_by_pieces): New.
(clear_by_pieces_1): New.
(store_by_pieces_1): Renamed from clear_by_pieces, handle storing
arbitrary compiler generated constants into memory block.
(store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
* builtins.c (c_readstr): New.
(builtin_memcpy_read_str): New.
(expand_builtin_memcpy): If src is string constant and
emit_block_move would move it by pieces, compute integer constants
from the string and store it into memory block instead.
(builtin_strncpy_read_str): New.
(expand_builtin_strncpy): If N is not constant zero and c_strlen does
not return INTEGER_CST, don't optimize.
If N is larger than strlen(src) + 1, try to copy the string
including padding with store_by_pieces.
(expand_builtin_strcmp): If both arguments have side effects, don't
optimize.
(expand_builtin_fputs): If STR has side effects, don't optimize.
* gcc.c-torture/execute/string-opt-5.c: Add some strcmp and strncpy
tests.
* gcc.c-torture/execute/string-opt-6.c: New test.
From-SVN: r37851
* java/util/zip/InflaterInputStream (read): Don't return -1 unless
the infate() call didn't deliver any output. Throw a ZipException if
the needsDictionary() call returns true.
* java/io/ByteArrayInputStream (read): Remove redundant bounds checks.
* java/io/InputStreamReader: Use the default buffer size for the
contained BufferedInputStream.
From-SVN: r37846
* gcc.dg/noncompile/940510-1.c: Update to test c89 functionality.
Move from here ...
* gcc.dg/940510-1.c: ... to here.
* gcc.dg/20000926-1.c: GNU C now allows initializations of
zero-size arrays in toplevel structures.
From-SVN: r37830
* cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
indicating whether to scan all buffers on the stack or
just one.
* cppinit.c (do_includes): Update.
* cppmain.c (main): Update.
* cpplib.h: Update prototype.
From-SVN: r37829
* java/text/DateFormatSymbols.java (zoneStringsDefault): Added
more time zone entries.
* java/text/SimpleDateFormat.java (format): Added case for
TIMEZONE_FIELD.
From-SVN: r37824
* loop.c (load_mems): Avoid using next_label to find end_label. If
jumping outside of the loop (other than loop end), don't hoist MEMs
out of loop.
* gcc.c-torture/execute/loop-8.c: New test.
From-SVN: r37823
2000-11-28 Geoffrey Keating <geoffk@redhat.com>
Felix Lee <flee@redhat.com>
* gen-params: Put in cases for O_EXCL, O_APPEND not being defined.
Co-Authored-By: Felix Lee <flee@redhat.com>
From-SVN: r37821
* tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
(struct directive): Drop 4th argument from handlers.
(do_define, do_line, do_include, do_undef, do_else, do_elif,
do_endif): Similarly.
(do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
(do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
(make_definition, make_undef): Take a const char*.
(make_assertion): New function.
(struct directive_table): Update.
(main): Handle -A command line argument.
(handle_directive): Drop fourth handler argument.
From-SVN: r37820