Mark Mitchell [Thu, 22 Feb 2001 21:46:06 +0000 (21:46 +0000)]
mangle.c (write_encoding): Pass write_function_type the FUNCTION_DECL for the function being encoded.
* mangle.c (write_encoding): Pass write_function_type the
FUNCTION_DECL for the function being encoded.
(write_function_type): Pass it along to write_bare_function_type.
(write_bare_function_type): Pass it along to write_method_parms.
(write_method_parms): Don't mangle the compiler-generated
parameters to a constructor or destructor.
Jakub Jelinek [Thu, 22 Feb 2001 11:46:33 +0000 (12:46 +0100)]
cp-tree.h (struct lang_decl_inlined_fns): New.
* cp-tree.h (struct lang_decl_inlined_fns): New.
(struct lang_decls): Add inlined_fns.
(DECL_INLINED_FNS): New macro.
* optimize.c (struct inline_data): Add inlined_fns.
(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
(inlinable_function_p): Likewise, fix typo in comment,
function is not inlinable if it already inlined function currently
being optimized.
(expand_call_inline): Add fn to inlined_fns if neccessary.
(optimize_function): Initialize inlined_fns.
Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
* decl.c (mark_inlined_fns): New function.
(lang_mark_tree): Call it.
Bryce McKinlay [Thu, 22 Feb 2001 04:19:58 +0000 (04:19 +0000)]
Disable libgcjx by default.
* configure.in: Add support for --enable-java-awt configure option.
Use --enable-java-awt=xlib to build the xlib peers (libgcjx).
* Makefile.am: Make libgcjx conditional on XLIB_AWT, instead of NO_X.
* Makefile.in: Rebuilt.
* configure: Rebuilt.
David Mosberger [Wed, 21 Feb 2001 21:50:16 +0000 (21:50 +0000)]
Refine syscall_linkage attribute semantics to fix security hole.
* config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage
functions, drop current_function_args_info.words test.
(ia64_compute_frame_size): Mark syscall_linkage functions as
using eight input registers.
Jason Merrill [Wed, 21 Feb 2001 14:42:27 +0000 (09:42 -0500)]
tree.h (DECL_UNINLINABLE): Move from C++ frontend.
* tree.h (DECL_UNINLINABLE): Move from C++ frontend.
(struct tree_decl): Add uninlinable bitfield.
* c-decl.c (duplicate_decls): Set it.
* integrate.c (function_cannot_inline_p): Check it.
* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
(DECL_UNINLINABLE): Move to middle-end.
* dwarf2out.c (add_name_and_src_coords_attributes): Don't add
DW_AT_MIPS_linkage_name to abstract methods.
(dwarf2out_abstract_function): Emit class context before calling
set_decl_abstract_flags. Don't clear DECL_ABSTRACT.
(gen_subprogram_die): Remove obsolete code.
(gen_member_die): Don't include clones in the member list.
(gen_decl_die): Emit abstract info for clone origin.
* dwarfout.c (output_type): Don't include clones in the member list.
* dbxout.c (dbxout_type_methods): Ignore abstract methods.
* toplev.c (note_deferral_of_defined_inline_function): Don't clear
DECL_ABSTRACT on a function that already has it set.
* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
parms and outer BLOCK. note_deferral_of_defined_inline_function.
* dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL.
(get_subprogram_die): Pass it in.
* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
second parm of op=.
Neil Booth [Wed, 21 Feb 2001 07:29:56 +0000 (07:29 +0000)]
cppfiles.c: Update comments.
* cppfiles.c: Update comments.
(_cpp_read_file): Don't check for NULL filenames any more.
* cppinit.c (cpp_start_read): Don't do canonicalization of
in_fname and out_fname. Use the passed file name exclusively.
(_cpp_handle_options): Don't treat "-" as a command line option,
but as a normal filename.
(_cpp_post_options): Canonicalize in_fname and out_fname.
* cppmain.c (printer_init): Don't check out_fname for NULL.
* c-lex.c (orig_filename): Rename cpp_filename for clarity.
(init_c_lex): Update, and use "" to represent stdin to CPP.
(yyparse): Update.
Will Cohen [Wed, 21 Feb 2001 05:05:25 +0000 (05:05 +0000)]
quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
* config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
* config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added.
(INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for
fixunstfsi_libfunc.
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.