Jan Hubicka [Tue, 27 Feb 2001 14:54:15 +0000 (15:54 +0100)]
i386.md (movsf, movdf): Use movaps for reg-reg moves if TARGET_PARTIAL_REG_DEPENDENCY.
* i386.md (movsf, movdf): Use movaps for reg-reg moves if
TARGET_PARTIAL_REG_DEPENDENCY.
(truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case.
Nathan Sidwell [Tue, 27 Feb 2001 13:12:17 +0000 (13:12 +0000)]
Fix ctor vtable vcall offsets.
cp:
Fix ctor vtable vcall offsets.
* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
(get_matching_base): Remove.
(get_original_base): New function.
(build_vtbl_initializer): Initialize vid.rtti_binfo.
Use a virtual thunk for a ctor vtable with an index
(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
primary base within a constructor vtable. Only set
BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
when primary base has been lost.
* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
testsuite:
* g++.old-deja/g++.abi/vtable3.h: Check vcall offsets too.
Benjamin Kosnik [Tue, 27 Feb 2001 04:28:36 +0000 (04:28 +0000)]
std_stdexcept.h (logic_error::logic_error): Use string object, not reference.
2001-02-26 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/1972
libstdc++/2089
* include/bits/std_stdexcept.h (logic_error::logic_error): Use
string object, not reference.
(runtime_error::runtime_error): Same.
Benjamin Kosnik [Tue, 27 Feb 2001 04:13:17 +0000 (04:13 +0000)]
std_stdexcept.h (logic_error::logic_error): Use string object, not reference.
2001-02-26 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/1972
libstdc++/2089
* include/bits/std_stdexcept.h (logic_error::logic_error): Use
string object, not reference.
(runtime_error::runtime_error): Same.
* testsuite/19_diagnostics/stdexceptions.cc: New file.
Zack Weinberg [Sun, 25 Feb 2001 17:23:42 +0000 (17:23 +0000)]
config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
* config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
* config/mips/mips.c (mips_make_temp_file): Set temp_filename
properly.
(mips_asm_file_end): Free temp_filename here.
Neil Booth [Sun, 25 Feb 2001 09:43:03 +0000 (09:43 +0000)]
cppinit.c (builtin_array): Update.
* cppinit.c (builtin_array): Update.
(init_builtins): Flag builtins to warn if redefined or
undefined. Define __GXX_WEAK as a normal macro.
* cpplib.c (do_undef): Warn if flagged NODE_WARN.
* cpplib.h (NODE_WARN): New flag.
* cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__.
Handle __STDC__ as a builtin only on Solaris.
(warn_of_redefinition): Renamed from check_macro_definition.
Reverse sense of test. Always warn if NODE_WARN.
(_cpp_create_definition): Use warn_of_redefinition. Flag
any macro beginning with "__STDC_" to require a mandatory
warning if redefined or undefined.
Per Bothner [Sat, 24 Feb 2001 03:20:18 +0000 (19:20 -0800)]
gcc.c (record_temp_file, [...]): Make non-static, so they can be called from java/jvspec.c.
* gcc.c (record_temp_file, pfatal_with_name, error): Make non-static,
so they can be called from java/jvspec.c.
* gcc.h (record_temp_file, pfatal_with_name, error): Declare.
Jan Hubicka [Sat, 24 Feb 2001 02:32:33 +0000 (03:32 +0100)]
flow.c (find_sub_basic_blocks): New function.
* flow.c (find_sub_basic_blocks): New function.
(split_block): Be ready for basic block introduced by CODE_LABEL.
(commit_one_edge_insertion): Call find_sub_basic_block.
* flow.c (make_edges): Add edge from entry for blocks starting with
label having ALTERNATE_NAME
Jan Hubicka [Sat, 24 Feb 2001 02:22:07 +0000 (03:22 +0100)]
function.c (epilogue_done): Be ready for first basic block not containing PROLOGUE_END note.
* function.c (epilogue_done): Be ready for first basic block not
containing PROLOGUE_END note.
(reposition_prologue_and_epilogue_notes): Avoid placing
PROLOGUE_END note between BASIC_BLOCK.
Jakub Jelinek [Fri, 23 Feb 2001 12:28:07 +0000 (13:28 +0100)]
fold-const.c (extract_muldiv): If not MULT_EXPR, check if either operand is divisible by C.
* fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR,
check if either operand is divisible by C.
(multiple_of_p): Handle LSHIFT_EXPR with small constant shift.
If type is signed, consider negative numbers as well.
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.