David Daney [Wed, 9 Mar 2005 22:11:33 +0000 (22:11 +0000)]
re PR libgcj/20389 (BufferedInputStream gets ArrayIndexOutOfBoundsExeception)
2005-03-09 David Daney <ddaney@avtrex.com>
PR libgcj/20389
Merge BufferedInputStream from GNU Classpath.
* java/io/BufferedInputStream.java (marktarget): Field removed.
(CHUNKSIZE): Field removed.
(bufferSize): New field.
(BufferedInputStream): Initialize fields.
(close): Invalidate mark and buffer indexes.
(mark): Rewritten.
(read()): Move mark handling code to refill.
(read(byte[], int, int)): Ditto.
(skip): Ditto and simplify EOF testing.
(refill): Rewritten.
* java/io/InputStreamReader.java (refill): Removed mark and reset
of internal BufferedInputStream.
Kazu Hirata [Wed, 9 Mar 2005 19:21:11 +0000 (19:21 +0000)]
fold-const.c (fold_unary, [...]): Take decomposed arguments, code, type, op0, and op1 in case of fold_binary.
* fold-const.c (fold_unary, fold_binary): Take decomposed
arguments, code, type, op0, and op1 in case of fold_binary.
(fold): Update calls to fold_unary and fold_binary.
Kazu Hirata [Wed, 9 Mar 2005 19:18:15 +0000 (19:18 +0000)]
fold-const.c (fold_unary, [...]): Return NULL_TREE when a given tree is not simplified.
* fold-const.c (fold_unary, fold_binary, fold_ternary): Return
NULL_TREE when a given tree is not simplified.
(fold): Return the original tree when any of the functions
mentioned above NULL_TREE.
Mark Mitchell [Wed, 9 Mar 2005 18:35:48 +0000 (18:35 +0000)]
re PR c++/20208 (No array-to-pointer decay happens for template functions)
PR c++/20208
* pt.c (tsubst_decl): Apply array-to-pointer and
function-to-pointer conversions to function arguments.
(regenerate_decl_from_template): Likewise.
PR c++/20208
* g++.dg/template/array13.C: New test.
Paolo Carlini [Wed, 9 Mar 2005 17:03:34 +0000 (17:03 +0000)]
re PR c++/16859 (Empty initializer for array of unknown size spuriously accepted)
2005-03-09 Paolo Carlini <pcarlini@suse.de>
PR c++/16859
* decl.c (complete_array_type): In pedantic mode, return
3 for an empty initializer list as the initializer for an
array of unknown bound (8.5.1/4).
(maybe_deduce_size_from_array_init): Fix final test to use
the above.
Kazu Hirata [Wed, 9 Mar 2005 16:39:43 +0000 (16:39 +0000)]
cfgbuild.c (state, [...]): Move just before make_edges.
* cfgbuild.c (state, STATE, SET_STATE,
BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
make_edges.
(make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
(find_basic_blocks): Set the state of each basic block to
BLOCK_NEW.
Mark Mitchell [Wed, 9 Mar 2005 07:28:10 +0000 (07:28 +0000)]
re PR c++/20142 (implicit assignment operator with multi-dimensional array is broken)
PR c++/20142
* cp-tree.h (target_type): Remove.
* decl.c (layout_var_decl): Remove #if 0'd code.
(cp_finish_decl): Remove dead code.
* init.c (build_vec_init): When determining whether or not the
element type has an asignment operator, look through all array
dimensions.
* typeck.c (target_type): Remove.
Jeff Law [Tue, 8 Mar 2005 03:40:58 +0000 (20:40 -0700)]
20030821-1.c: Verify that the computed goto was folded away.
* gcc.dg/tree-ssa/20030821-1.c: Verify that the computed goto
was folded away.
* gcc.dg/tree-ssa/pr18133-1.c: New test.
* gcc.dg/tree-ssa/pr18133-2.c: New test.
Jeff Law [Tue, 8 Mar 2005 03:39:19 +0000 (20:39 -0700)]
tree-cfg.c (find_taken_edge_computed_goto): New function.
* tree-cfg.c (find_taken_edge_computed_goto): New function.
(find_taken_edge): Call find_taken_edge_computed_goto as
appropriate. Allow any gimple invariant rather than just
INTEGER_CST for VAL.
(cleanup_control_flow): Cleanup a computed goto which has turned
into a simple goto.
(tree_merge_blocks): If block B has any forced labels, move
them to the start of block A.
* tree-ssa-dom.c (thread_across_edge): Allow threading across
computed gotos as well.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
removal of unnecessary computed gotos too.
(lookup_redirection_data): Fix type of INSERT argument. Callers
updated.
Andrew Pinski [Tue, 8 Mar 2005 00:40:33 +0000 (00:40 +0000)]
re PR tree-optimization/17671 (PHI-OPT is not smart enough)
2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/17671
* tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
bbs on the COND_EXPR instead of the PHI_NODEs.
(candidate_bb_for_phi_optimization): Remove.
(replace_phi_with_stmt): Rename to ...
(replace_phi_edge_with_variable): this and change so that we
replace the phi argument instead of removing the PHI.
(conditional_replacement): Change so we deal with PHI with more
than two arguments.
(value_replacement): Likewise.
(abs_replacement): Likewise.
2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/17671
* gcc.dg/tree-ssa/phi-opt-[1-4].c: New tests.
Aldy Hernandez [Tue, 8 Mar 2005 00:30:32 +0000 (00:30 +0000)]
rs6000-protos.h: Rename output_e500_flip_eq_bit to output_e500_flip_gt_bit.
* config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
output_e500_flip_gt_bit.
* config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
as bit 31.
(rs6000_generate_compare): Fix logic to look at the correct bits.
(output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
Look at GT bit.
(rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
gen_move_from_CR_gt_bit.
* config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
(UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
* config/rs6000/spe.md ("e500_cr_ior_compare"): New.
(E500_CR_IOR_COMPARE): New constant.
Earl Chew [Mon, 7 Mar 2005 22:42:42 +0000 (22:42 +0000)]
host-cygwin.c: New file to support precompiled headers on cygwin
2005-03-08 Earl Chew <earl_chew@agilent.com>
David Billinghurst <David.Billinghurst@riotinto.com>
* config/i386/host-cygwin.c: New file to support precompiled
headers on cygwin
* config/i386/x-cygwin: Use host-cygwin.c on cygwin host
* config.host: Use above files for cygwin host.
Co-Authored-By: David Billinghurst <David.Billinghurst@riotinto.com>
From-SVN: r96050
Paolo Carlini [Mon, 7 Mar 2005 22:22:35 +0000 (22:22 +0000)]
type_traits (is_polymorphic): Don't forget the virtual destructor, thus avoiding warnings.
2005-03-07 Paolo Carlini <pcarlini@suse.de>
* include/tr1/type_traits (is_polymorphic): Don't forget
the virtual destructor, thus avoiding warnings.
* testsuite/testsuite_tr1.h (class AbstractClass,
class PolymorphicClass): Likewise.
2005-03-07 Paolo Carlini <pcarlini@suse.de>
* include/std/std_complex.h (pow(const complex<_Tp>&,
const complex<_Tp>&)): Dispatch to either __complex_pow(__x.__rep(),
__y.__rep()) or __complex_pow(__x, __y) depending on the macro
_GLIBCXX_USE_C99_COMPLEX.
Per Bothner [Mon, 7 Mar 2005 21:14:12 +0000 (13:14 -0800)]
Various fixes to allow us to again build if --enable-mapped-location:
* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
* tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
local variable loc. Change logic appropriately.
* tree-vect-transform.c (vect_finish_stmt_generation): Use
EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
* c-parser.c (c_parser_for_statement): Initialize loc variable.
* tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
Bryce McKinlay [Mon, 7 Mar 2005 21:10:49 +0000 (21:10 +0000)]
[multiple changes]
2005-03-04 Bryce McKinlay <mckinlay@redhat.com>
* verify-glue.c (vfy_is_assignable_from): Perform static check using
can_widen_reference_to if the C++ ABI is in use.
(vfy_get_interface_count, vfy_get_interface): Remove unused functions.
* verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
type_isresolved, init_state, set_pc, state_get_pc,
_Jv_BytecodeVerifier): Clean up unused and disabled functions.
(verify_fail): Report the current PC from the verifier context.
(free_state): Remove #if 0 block to enable this function.
(free_verifier_context): Call free_state on state_list iterator
values before freeing them.
* expr.c (pop_type_0): Pop correct type for error message when stack
contains a multi-word type.
2005-03-04 Ranjit Mathew <rmathew@hotmail.com>
* expr.c (build_java_array_length_access): Remove !flag_new_verifier
for known NULL array length access.
re PR rtl-optimization/19683 (MIPS wrong-code for 64-bit multiply.)
PR rtl-optimization/19683
* reload1.c (choose_reload_regs): Pass the number of bits, not the
number of bytes, to smallest_int_for_mode. Fix arguments to
REG_CANNOT_CHANGE_MODE_P.
Paolo Carlini [Mon, 7 Mar 2005 16:58:43 +0000 (16:58 +0000)]
std_fstream.h (basic_fstream<>::open, [...]): Implement the resolution of DR 409 [Ready], call clear() on success.
2005-03-07 Paolo Carlini <pcarlini@suse.de>
* include/std/std_fstream.h (basic_fstream<>::open,
basic_ifstream<>::open, basic_ofstream<>::open): Implement the
resolution of DR 409 [Ready], call clear() on success.
* docs/html/ext/howto.html: Add an entry for DR 409.
* docs/html/faq/index.html (4_4): Clarify the new behavior.
* testsuite/27_io/basic_ifstream/open/char/1.cc: Adjust.
* testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.