Zack Weinberg [Tue, 20 Feb 2001 05:49:06 +0000 (05:49 +0000)]
sibcall.c (skip_copy_to_return_value): Call identify_call_return_value here, and return orig_insn if it returns zero.
* sibcall.c (skip_copy_to_return_value): Call
identify_call_return_value here, and return orig_insn if it
returns zero. Hardret and softret arguments now unnecessary.
(call_ends_block_p): Don't call identify_call_return_value here.
* ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or
's' slots in RTXen.
* ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function.
* ggc.h (ggc_mark_if_gcable): Delete prototype.
testsuite:
* g77.dg: New directory.
* g77.dg/20010216-1.f: New test case.
* g77.dg/dg.exp: New driver.
* lib/g77-dg.exp: New driver library.
Jeffrey A Law [Tue, 20 Feb 2001 03:29:00 +0000 (03:29 +0000)]
pa.c (move_operand): Accept code to load the address of a symbol out of the DLT as a valid move operand.
* pa.c (move_operand): Accept code to load the address of a
symbol out of the DLT as a valid move operand.
(print_operand, case 'A'): New to handle generating a DLT
reference for a LO_SUM expression.
* pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references.
* pa.md (movsi, movdi patterns): Allow DLT LO_SUM references.
Bryce McKinlay [Mon, 19 Feb 2001 22:48:16 +0000 (22:48 +0000)]
parse.y (parser_check_super_interface): Don't call check_pkg_class_access for an inner interface.
* parse.y (parser_check_super_interface): Don't call
check_pkg_class_access for an inner interface.
(parser_check_super): Don't call check_pkg_class_access for inner
class.
(do_resolve_class): Simplify enclosing type loop. Don't call
check_pkg_class_access if CL and DECL are not set.
(find_in_imports_on_demand): Set DECL if class_type needed to be
loaded. Don't call check_pkg_class_access for an inner class.
(check_inner_class_access): Rewritten to implement member access
rules as per spec 6.6.1.
(check_pkg_class_access): Handle the empty package correctly.
(in_same_package): New function. Determine if two classes are in the
same package.
Bryce McKinlay [Mon, 19 Feb 2001 21:10:14 +0000 (21:10 +0000)]
typeck.c (build_java_array_type): Don't try to poke a public `clone' method into array types.
* typeck.c (build_java_array_type): Don't try to poke a public `clone'
method into array types.
* parse.y (patch_method_invocation): Bypass access check on clone call
to array instance.
Neil Booth [Mon, 19 Feb 2001 19:50:21 +0000 (19:50 +0000)]
cppfiles.c (stack_include_file): Generate dependencies here, and manage include_count here too.
* cppfiles.c (stack_include_file): Generate dependencies
here, and manage include_count here too.
(PRINT_THIS_DEP): Delete.
(_cpp_execute_include): Do not generate dependencies here,
apart from the case of a missing header. Do not manage
include_count.
(_cpp_read_file): Leave dependency generation to
stack_include_file.
Jan Hubicka [Mon, 19 Feb 2001 15:50:20 +0000 (16:50 +0100)]
regclass.c (contains_reg_of_mode): Make global.
* regclass.c (contains_reg_of_mode): Make global.
(init_reg_sets): Remove contains_reg_of_mode; take into account
CLASS_MAX_NREGS when looking for the proper mode.
(dump_regclass): Dump only classes considered for the pseudo.
(regclass): Use contains_reg_of_mode.
Jan Hubicka [Mon, 19 Feb 2001 14:59:42 +0000 (15:59 +0100)]
reg-stack.c (next_flags_user): Use current_block->end
* reg-stack.c (next_flags_user): Use current_block->end
(swap_rtx_condition): Look for next user if flags don't die;
give up on CALL_INSNs; use current_block->end.
Bryce McKinlay [Mon, 19 Feb 2001 05:37:28 +0000 (05:37 +0000)]
CharArrayReader.java (CharArrayReader): Throw IllegalArgumentException if constructor arguments are illegal.
* java/io/CharArrayReader.java (CharArrayReader): Throw
IllegalArgumentException if constructor arguments are illegal.
(ready): Return false if no more characters can be read.
* java/io/ByteArrayInputStream.java (ByteArrayInputStream): Likewise.
Richard Kenner [Mon, 19 Feb 2001 00:09:28 +0000 (00:09 +0000)]
toplev.c (note_deferral_of_defined_inlined_function): Argument FNDECL may be unused.
* toplev.c (note_deferral_of_defined_inlined_function): Argument
FNDECL may be unused.
* toplev.c (rest_of_compilation): Don't have CSE skip blocks or
follow jumps after first run.
If -fexpensive-optimizations rerun CSE after GCSE and iterate until
it doesn't change any jumps.
Jeffrey A Law [Mon, 19 Feb 2001 00:05:49 +0000 (00:05 +0000)]
Makefile.in (rtlanal.o): Depend on hard-reg-set.h.
* Makefile.in (rtlanal.o): Depend on hard-reg-set.h.
($HOST_PREFIX_1)rtlanal.o: Remove rules for building
(mostlyclean): Corresponding changes.
* rtlanal.c (hard-reg-set.h): Include.
(rtx_unstable_p): Do not treat the argument pointer specially
if it is not a fixed register.
(rtx_varies_p, rtx_addr_can_trap_p): Similarly.
Richard Kenner [Sun, 18 Feb 2001 23:56:34 +0000 (23:56 +0000)]
Makefile.in (gcse.o): Now includes ggc.h.
* Makefile.in (gcse.o): Now includes ggc.h.
* gcse.c: Include ggc.h.
(want_to_gcse_p): Verify expression can be in SET as valid insn.
(try_replace_reg): Remove warning of uninitialize variable.
(process_insert_insn): Call invalid_insn_p to validate insn.
* recog.c (insn_invalid_p): Now global.
See if can make valid by adding CLOBBERs of SCRATCH only and do if so.
* recog.h (insn_invalid_p): New declaration.
Richard Kenner [Sun, 18 Feb 2001 23:39:28 +0000 (23:39 +0000)]
sparc.c (eligible_for_epilogue_delay): Don't put assignments from FP constants sonce 'Y' output code can't handle it.
* config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
assignments from FP constants sonce 'Y' output code can't handle it.
(eligible_for_sibcall_delay): Likewise.
Richard Kenner [Sun, 18 Feb 2001 20:56:03 +0000 (20:56 +0000)]
flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
* flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
Call fancy_abort directly, passing args.
(print_rtl_and_abort): Now a macro, like fancy_abort.
Jason Merrill [Sun, 18 Feb 2001 19:08:00 +0000 (14:08 -0500)]
Do put the VTT parameter in DECL_ARGUMENTS.
* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
(current_vtt_parm): New macro.
(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
(DECL_HAS_VTT_PARM_P): New macro.
(DECL_VTT_PARM): Remove.
(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
* decl.c (duplicate_decls): Only copy the operator code if
appropriate.
(start_function): Set current_vtt_parm.
(lang_mark_tree): Don't mark vtt_parm.
* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
* class.c (build_clone): Maybe remove the VTT parm.
* optimize.c (maybe_clone_body): Set up the VTT parm.
* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
* call.c (build_over_call): Just allow the VTT arg.
* method.c (make_thunk): Don't set DECL_VTT_PARM.
(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
* error.c (dump_function_decl): Likewise.
* call.c (build_user_type_conversion_1, convert_like_real): Abort
if we try to call a constructor with in-charge or VTT parms.
* method.c (skip_artificial_parms_for): New fn.
* call.c (add_function_candidate, build_over_call): Call it.
* call.c (build_new_method_call): Use current_vtt_parm.
* init.c (expand_virtual_init): Likewise.
* class.c (same_signature_p): No longer static.
* cp-tree.h: Declare it.
* search.c (look_for_overrides_r): Use it.
* rtl.h (add_clobbers): Remove duplicate declaration.
* recog.h (added_clobbers_hard_reg_p): New declaration.
* genemit.c (struct clobber_pat): New field has_hard_reg.
(gen_insn): Record if added clobbers clobber hard reg.
(gen_split): Avoid unused warning if number of operands is 0.
(output_added_clobbers_hard_reg_p): New function.
(main): Call it.
* pa.c (hppa_expand_prologue): Simplify code storing return
pointer. For large (>=8k) frames with a post_store, adjust stack
pointer by 8k-64 first rather than by 64. When testing with
VAL_14_BITS_P, always use the actual value rather than the value
negated. Add blockage to prevent scheduling of spills before
stack frame has been created.
(hppa_expand_epilogue): Simplify code loading return pointer.
Allow a slightly larger range for merge_sp_adjust_with_load case.
When testing with VAL_14_BITS_P, always use the actual value.
Mark Mitchell [Sun, 18 Feb 2001 06:53:19 +0000 (06:53 +0000)]
fold-const.c (fold_binary_op_with_conditional_arg): New function, split out from ...
* fold-const.c (fold_binary_op_with_conditional_arg): New
function, split out from ...
(fold): ... here.
* tree.def (COND_EXPR): Document the use of VOID_TYPE for
conditional arms that throw exceptions.
Jason Merrill [Sun, 18 Feb 2001 00:00:29 +0000 (19:00 -0500)]
decl2.c (build_artificial_parm): Set TREE_READONLY.
* decl2.c (build_artificial_parm): Set TREE_READONLY.
* decl.c (bad_specifiers): Allow throw specs on things with
pointer-to-function or -member-function type.
* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
a pmf.
libstdc++/1734
* include/bits/std_ostream.h: Replaced usage of
_Traits::_S_eos() with _CharT() as per section 17.2.2.1.3.
* include/bits/char_traits.h: Removed non-standard
methods that cannot be used elsewhere.
libstdc++/1885
* include/bits/basic_ios.h: Uncommented #include of
bits/basic_ios.tcc
libstdc++/1897
* include/bits/codecvt.h: See next...
* include/bits/fstream.tcc: See next...
* include/bits/ostream.tcc: Add __extension__
to variable-length arrays.
libstdc++/1967
* include/bits/localefwd.h: Changed int counter type to size_t.
libstdc++/1968
* include/bits/std_fstream.h: Added typedef for __ctype_type.
Mark Wielaard [Sat, 17 Feb 2001 15:09:46 +0000 (15:09 +0000)]
Remerge with Classpath (changes by Bryce McKinlay <bryce@albatross.co.nz>)
Remerge with Classpath
(changes by Bryce McKinlay <bryce@albatross.co.nz>)
* java/io/DataInputStream.java (readBoolean): Use convertToBoolean().
(readByte): Use convertToByte().
(readChar): Use convertToChar().
(readInt): Use convertToInt().
(readLong): Use convertToLong().
(readShort): Use convertToShort().
(readUnsignedByte): Use convertToUnsignedByte().
(readUnsignedShort): Use convertToUnsignedShort().
(readUTF): Use convertToUTF().
Mark Wielaard [Sat, 17 Feb 2001 13:59:13 +0000 (13:59 +0000)]
DataInputStream.java: update copyright notice
* java/io/DataInputStream.java: update copyright notice
* java/io/PrintWriter.java: idem
* java/io/Reader.java: idem
* java/io/StreamTokenizer.java: idem
* java/io/StringReader.java: idem
* java/lang/reflect/ReflectPermission.java: idem
Richard Kenner [Fri, 16 Feb 2001 19:29:49 +0000 (19:29 +0000)]
gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV.
* gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV.
Don't CSE a nop.
(hash_scan_insn): Clean up calls to hash_scan_set.
(compute_kill_rd): REGNO now unsigned.
(try_replace_reg): Rework to use simplify_replace_rtx.
(cprop_jump, cprop_cc0_jump): Likewise.
(cprop_insn): Call find_reg_equal_equiv_note.
Reflect changes to cprop_jump and cprop_cc0_jump.
Richard Kenner [Fri, 16 Feb 2001 17:50:49 +0000 (17:50 +0000)]
cse.c (new_label_ref): New variable.
* cse.c (new_label_ref): New variable.
(insert): Set it instead of recorded_label_ref.
(cse_basic_block): Set recorded_label_ref if new_label_ref use, has
CODE_LABEL for this function, and not already in REG_LABEL note.
Jason Merrill [Fri, 16 Feb 2001 13:03:10 +0000 (08:03 -0500)]
dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is NULL.
* dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is
NULL.
(gen_subprogram_die): Don't abort on seeing a second definition if
the previous one was abstract. Don't replace an abstract instance
in the lookup table.
* dwarf2out.c (dwarf2out_abstract_function): Rename from
gen_abstract_function.
* dwarf2out.h: Declare it.
* toplev.c (note_outlining_of_inline_function): New fn.
* toplev.h: Declare it.
* integrate.c (output_inline_function): Call it.
* c-decl.c (duplicate_decls): Call it when redefining an extern
inline. Don't inline the new defn.