Paolo Carlini [Tue, 30 Sep 2003 13:44:59 +0000 (15:44 +0200)]
re PR libstdc++/12438 (Memory leak in locale::combine())
2003-09-30 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/12438
* include/bits/locale_facets.tcc (locale::combine): Don't
leak memory if _M_replace_facet throws.
* testsuite/22_locale/locale/cons/12438.cc: New, from the PR.
* include/bits/locale_classes.h (locale::locale(const locale&,
_Facet*)): Tweak, use consistently _M_remove_reference.
Nicolas Pitre [Tue, 30 Sep 2003 10:30:32 +0000 (10:30 +0000)]
Nicolas Pitre <nico@cam.org>
Nicolas Pitre <nico@cam.org>
* arm/lib1funcs.asm (ARM_DIV_MOD_BODY) split into ARM_DIV_BODY
and ARM_MOD_BODY.
(ARM_MOD_BODY): rewritten. added clz insns for __ARM_ARCH__ >= 5.
(ARM_DIV_BODY): added clz insns for __ARM_ARCH__ >= 5,
added better divisor alignment in the other case.
(ARM_DIV2_ORDER): added, finds the order of a single bit divisor.
(__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the
macros above, add fast exits for divisor >= dividend, etc.
Richard Earnshaw [Tue, 30 Sep 2003 10:21:41 +0000 (10:21 +0000)]
Nicolas Pitre <nico@cam.org>
Nicolas Pitre <nico@cam.org>
* arm/ieee754-df.S: split compilation of fixunsdfsi from
L_fixdfsi target.
* arm/t-arm-elf: add _fixunsdfsi target due to the above.
re PR rtl-optimization/12345 (internal compiler error: verify_flow_info failed)
PR optimization/12345
* config/mips/mips-protos.h (mips_restore_gp): Remove.
(mips_gp_save_slot): Declare.
* config/mips/mips.c (mips_restore_gp): Remove in favor of...
(mips_gp_save_slot): ...this new function.
* config/mips/mips.md (exception_receiver): Use mips_gp_save_slot
and mips_output_move to generate the output template.
(call_internal): Force splitting if TARGET_SPLIT_CALLS. Don't emit
a gp load after a noreturn call. Load the gp using a move rather
than an exception_receiver pattern.
(call_value_internal, call_value_multiple_internal): Likewise.
(call_split, call_value_split, call_value_multiple_split): Clobber $28.
varasm.c (assemble_real): Use real_to_target directly...
* varasm.c (assemble_real): Use real_to_target directly,
calculate the number of significant elements of the result
array and write them out in a loop, instead of using a giant
switch statement to pick the correct REAL_VALUE_TO_TARGET_*
macro.
configure.in: Remove wildcard from Solaris 8-9/Intel and Solaris 2.3/SPARC...
boehm-gc:
* configure.in: Remove wildcard from Solaris 8-9/Intel and Solaris
2.3/SPARC, there are no micro versions.
Treat Solaris 10 and up alike.
* configure: Regenerate.
gcc:
* config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like
Solaris 7-9.
* fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by
wildcards which explicitly match micro versions.
* fixinc/fixincl.x: Regenerate.
libstdc++-v3:
* configure.host: Handle Solaris 2.5 micro releases explicitly.
Remove wildcards from Solaris 2.6, 7-9: there were no
micro releases.
Treat Solaris 10 and up like 7-9.
Paolo Carlini [Mon, 29 Sep 2003 17:36:18 +0000 (17:36 +0000)]
[multiple changes]
2003-09-29 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/12296
* include/bits/istream.tcc (peek): Set eofbit if sgetc
returns eof.
* testsuite/27_io/basic_istream/peek/char/12296.cc:
New, from the PR.
2003-09-29 Nathan Myers <ncm@cantrip.org>
Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/11400
* include/bits/stl_algo.h (search_n):
Use iterator_traits<>::difference_type for __n.
* testsuite/25_algorithms/search_n/11400.cc: New, from the PR.
Michael Koch [Mon, 29 Sep 2003 11:53:23 +0000 (11:53 +0000)]
2003-09-29 Michael Koch <konqueror@gmx.de>
* java/net/InetAddress.java:
(isMulticastAddress): Dont use local variable to store address length.
Let the compiler optimize this.
(getHostName): Merged dcoumentation from classpath.
(getAddress): Likewise.
(getHostAddress): Likewise.
(hashCode): Likewise.
(equals): Likewise.
(toString): Likewise.
(getByName): Likewise.
(getAllByName): Likewise.
c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not file and line separately.
* c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
file and line separately.
f/
* com.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
file and line separately.
java/
* check-init.c (check_init): Save and restore input_location
instead of file and line separately.
* decl.c (java_expand_body): Likewise.
* jcf-write.c (generate_bytecode_insns): Likewise.
* parse.y (safe_layout_class): Likewise.
* jcf-parse.c (read_class, parse_class_file): Likewise.
(java_parse_file): Use %H for warning locator.
Steven Bosscher [Sun, 28 Sep 2003 12:09:07 +0000 (12:09 +0000)]
pdp11-protos.h, [...]: Convert to ISO C90 function declarations and definitions.
* config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c,
config/c4x/c4x.h:
Convert to ISO C90 function declarations and definitions.
* config/mips/mips.c (mips_constant_info): Add reloc field.
(mips_classify_constant): Initialize it. Always set SYMBOL to the
underlying symbol, not to an unspec.
(mips_delegitimize_address, print_operand): Clean up accordingly.
* config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove.
* config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment.
* config/mips/mips.c (mips_reloc_offset_ok_p): New function.
(mips_classify_constant): Use it.
(mips_splittable_symbol_p): Add an offset argument.
(mips_classify_address): Adjust call accordingly.
(mips_legitimize_symbol): Handle sdata references with LO_SUM rather
than a relocation unspec. Update call to mips_splittable_symbol_p.
Generalize the code that copes with symbols + invalid offsets.
(print_operand): Allow '%R' to be applied to small data addresses.
(mips_reloc_string): Remove RELOC_GPREL16.
(mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg. Return $gp
for TARGET_EXPLICIT_RELOCS. Return null if we can't use gp-relative
relocation operators.
* config/mips/mips.md (RELOC_GPREL16): Remove. Shuffle other reloc
constants accordingly.
Roger Sayle [Sun, 28 Sep 2003 04:56:35 +0000 (04:56 +0000)]
toplev.c (flag_evaluation_order): New global variable.
* toplev.c (flag_evaluation_order): New global variable.
* flags.h (flag_evaluation_order): Prototype here.
* expr.c (expand_operands): If we need to preserve observable
evaluation order, protect exp1 from clobbering exp0's result.
* java/lang.c (java_init_options): Set flag_evaluation_order.
* java/expr.c (force_evaluation_order): Don't attempt to force
evaluation order of binary operations using save_expr.
* java/parse.y (java_complete_lhs): No longer need to call
force_evaluation_order when constructing binary operators.
DateFormat.java (format): Throw IllegalArgumentException if j' is not a Number or Date instance.
* java/text/DateFormat.java (format): Throw IllegalArgumentException
if j' is not a Number or Date instance.
* java/text/SimpleDateFormat.java (tokens): Make it an ArrayList
instead of Vector.
Eric Botcazou [Sat, 27 Sep 2003 17:18:25 +0000 (19:18 +0200)]
re PR rtl-optimization/12340 (loop unroller + gcse produces wrong code)
PR optimization/12340
* loop.h (struct induction): Document the new semantics
of the 'same' field for bivs.
* unroll.c (biv_total_increment): Don't count the same
biv increment several times.
(loop_iterations) [GENERAL_INDUCT]: Likewise.
Michael Koch [Sat, 27 Sep 2003 12:38:05 +0000 (12:38 +0000)]
URL.java (getURLStreamHandler): Check if we have to use cache before trying to retrieve handler from cache.
2003-09-27 Michael Koch <konqueror@gmx.de>
* java/net/URL.java (getURLStreamHandler):
Check if we have to use cache before trying to retrieve handler from
cache. Rename facName to clsName to match classpath more. Reformated
some little pieces.
2.cc (test_02): Allow either "Son" or "So" as abbreviated name for Sunday in de_DE locale.
* testsuite/22_locale/time_put/put/char/2.cc (test_02): Allow either
"Son" or "So" as abbreviated name for Sunday in de_DE locale.
* testsuite/22_locale/time_put/put/wchar_t/2.cc (test_02): Likewise.
Michael Koch [Fri, 26 Sep 2003 22:02:05 +0000 (22:02 +0000)]
re PR java/12426 (gcj allows access to private members from superclass)
2003-09-27 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/SelectionKeyImpl.java
(ch): Make package-private again. Jikes found this bug.
Jeff Sturm submitted PR12426 for this to bugzilla
to fix this bug in gcj.
Roger Sayle [Fri, 26 Sep 2003 18:23:33 +0000 (18:23 +0000)]
re PR rtl-optimization/11741 (internal compiler error at gcse.c:5318)
PR optimization/11741
* gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
appropriate set to match that in hash_scan_insn. Fall back to
the original copy method, if we can't validate changing insn.
(pre_delete): Only delete instructions that have a single_set,
instead of aborting when we encounter an PARALLEL insn with more
then one SET.
Andreas Krebbel [Fri, 26 Sep 2003 16:41:58 +0000 (16:41 +0000)]
s390.md ("builtin_setjmp_setup"): Insn deleted.
2003-09-26 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted.
("builtin_longjmp"): Insn deleted.
("save_stack_nonlocal"): Save literal pool base pointer behind
backchain and stack pointer.
("restore_stack_nonlocal"): Restore literal pool base pointer.
* config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of
the stack save area for the nonlocal goto case.