* include/c/bits/std_cmath.h (__cmath_power<>): Declare.
(__cmath_abs<>): New function.
(abs, fabs): Use __cmath_abs when no direct support is available.
(__pow_helper<>): New function.
(pow): Define here. Use __pow_helper<>.
Michael Matz [Thu, 30 Nov 2000 21:40:33 +0000 (21:40 +0000)]
flow.c (make_edge): Early out, if no flags to set.
* flow.c (make_edge): Early out, if no flags to set.
(calculate_global_regs_live): Clear out garbage only when necessary.
* simplify-rtx.c (varray_type used_regs): New.
(clear_table): Use it to only clear necessary items.
(cselib_lookup, cselib_record_set): Remember newly set items.
(cselib_update_varray_sizes, cselib_init): Initialize and grow
used_regs.
* local-alloc.c (update_equiv_regs): New local `cleared_regs'.
Move clearing of dead regs out of insn-loop.
Nathan Sidwell [Thu, 30 Nov 2000 16:03:16 +0000 (16:03 +0000)]
method.c (do_build_assign_ref): Construct appropriately CV-qualified base reference.
cp:
* method.c (do_build_assign_ref): Construct appropriately
CV-qualified base reference. Don't allow const casts in base
conversion.
testsuite:
* g++.old-deja/g++.other/op2.C: New test.
Jeff Law [Thu, 30 Nov 2000 08:30:26 +0000 (01:30 -0700)]
configure.in: Reorganize handling of *-*-gnu*, to share target specific make details with Linux.
* 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.
Stephane Carrez [Thu, 30 Nov 2000 08:25:59 +0000 (09:25 +0100)]
udivmod.c, [...]: Moved from here.
* 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.
function.h (emit_status): Delete member regno_pointer_flag and rename regno_pointer_flag_length to...
* 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.
Jakub Jelinek [Wed, 29 Nov 2000 18:24:50 +0000 (19:24 +0100)]
expr.h (store_by_pieces): Add prototype.
* 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.
Bryce McKinlay [Wed, 29 Nov 2000 10:06:03 +0000 (10:06 +0000)]
InflaterInputStream (read): Don't return -1 unless the infate() call didn't deliver any output.
* 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.
Neil Booth [Tue, 28 Nov 2000 23:07:29 +0000 (23:07 +0000)]
c-common.h: Remove flag_digraphs.
* c-common.h: Remove flag_digraphs.
* c-decl.c: Remove flag_digraphs.
(c_decode_option): Don't set it.
* c-lex.c (init_c_lex): Don't do anything for digraphs.
Neil Booth [Tue, 28 Nov 2000 21:34:30 +0000 (21:34 +0000)]
cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean indicating whether to scan all buffers on the stack or just one.
* 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.
Warren Levy [Tue, 28 Nov 2000 20:11:46 +0000 (20:11 +0000)]
DateFormatSymbols.java (zoneStringsDefault): Added more time zone entries.
* java/text/DateFormatSymbols.java (zoneStringsDefault): Added
more time zone entries.
* java/text/SimpleDateFormat.java (format): Added case for
TIMEZONE_FIELD.
Neil Booth [Tue, 28 Nov 2000 19:14:16 +0000 (19:14 +0000)]
tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
* 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.
Richard Kenner [Tue, 28 Nov 2000 14:58:08 +0000 (14:58 +0000)]
system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
* system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
(IS_ABSOLUTE_PATHNAME): New macro.
* gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
Nathan Sidwell [Tue, 28 Nov 2000 10:31:09 +0000 (10:31 +0000)]
parse.y (base_class.1): Produce a _TYPE not a _DECL.
cp:
* parse.y (base_class.1): Produce a _TYPE not a _DECL.
* semantics.c (finish_base_specifier): Accept a _TYPE not a
_DECL.
testsuite:
* g++.old-deja/g++.other/base1.C: New test.
Benjamin Kosnik [Tue, 28 Nov 2000 09:34:08 +0000 (09:34 +0000)]
tests_flags.in (LTCXX): Change CXX_FLAG to CXXFLAGS.
2000-11-27 Benjamin Kosnik <bkoz@redhat.com>
* tests_flags.in (LTCXX): Change CXX_FLAG to CXXFLAGS.
* testsuite/22_locale/ctor_copy_dtor.cc: Adjust formatting.
* testsuite/27_io/istream_extractor_arith.cc (test11): New
testcase, based on libstdc++/90.
Bryce McKinlay [Tue, 28 Nov 2000 04:50:51 +0000 (04:50 +0000)]
DataInputStream.java: Merge classpath docs.
2000-11-28 Bryce McKinlay <bryce@abatross.co.nz>
* java/io/DataInputStream.java: Merge classpath docs. Call in.read()
directly rather than read() in all cases. Make primitive read
implementations more efficient, as defined in JDK online docs.
(skipBytes): Behave like the JDK's implementation.
* java/io/BufferedReader.java: Merge classpath docs. Check for a
closed stream with checkStatus() whenever an IOException can be
thrown.
(checkStatus): New private method.
Warren Levy [Tue, 28 Nov 2000 03:09:22 +0000 (03:09 +0000)]
Makefile.am: Added natTimeZone.cc.
* Makefile.am: Added natTimeZone.cc.
* Makefile.in: Rebuilt.
* gnu/gcj/text/LocaleData_en.java: Added DateFormat entries.
* java/text/DateFormatSymbols.java (ampms): Made package private.
(eras): Made package private.
(months): Made package private.
(shortMonths): Made package private.
(shortWeekdays): Made package private.
(weekdays): Made package private.
(formatPrefixes): New private field.
(localPatternCharsDefault): Made private.
(dateFormats): New package private field.
(timeFormats): New package private field.
(formatsForKey): New private method.
(DateFormatSymbols(Locale)): Set dateFormats and timeFormats.
(DateFormatSymbols(DateFormatSymbols)): Ditto.
* java/text/SimpleDateFormat.java: Merged with Classpath.
* java/util/TimeZone.java: Merged with Classpath.
* java/util/natTimeZone.cc: New file.
Neil Booth [Mon, 27 Nov 2000 19:04:54 +0000 (19:04 +0000)]
tradcpp.c (enum pending_dir_t, [...]): New.
* tradcpp.c (enum pending_dir_t, struct pending_dir): New.
(main): Allocate a pending directive set of these. Use it.
Merge handling of -D and -U. Update handling of pending
directives. Free the memory after use.
Bernd Schmidt [Mon, 27 Nov 2000 17:50:11 +0000 (17:50 +0000)]
While building global lifetime information, keep track of which registers are only conditionally set.
While building global lifetime information, keep track of which registers are
only conditionally set. Use this to force rescans in more cases where they
are needed.
Richard Earnshaw [Mon, 27 Nov 2000 16:40:08 +0000 (16:40 +0000)]
arm.c (select_dominance_cc_mode): Handle new way that combine canonicalizes conditional compares.
* arm.c (select_dominance_cc_mode): Handle new way that combine
canonicalizes conditional compares.
(arm_select_cc_mode): Likewise.
* arm.md: Garbage collect some dead code.
(cmp_and, cmp_ior): New patterns.
(splitter for conditional move with inverted false): Use cond_exec
and handle unordered comparisons.
Richard Earnshaw [Mon, 27 Nov 2000 16:01:29 +0000 (16:01 +0000)]
arm.md (arm_adddi3, [...]): Merge with splitters to create define_insn_and_split patterns.
* arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
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.
(peephole2 for add:SI of invalid immediate): New.
(peephole2 for minus:SI of invalid immediate): New.
(peephole2 for ior:SI of invalid immediate): New.
(peephole for merge of move and compare): Convert ot peephole2.
(addsf3, adddf3): Mark as commutative.
* arm.md (thumb peephole for merging stack adjustments): Convert to
peephole2.