Nathan Sidwell [Fri, 8 Jun 2001 11:10:29 +0000 (11:10 +0000)]
re PR c++/3061 (kde2/artsd miscompilation (part 2))
PR c++/3061
* class.c (build_secondary_vtable): Use assert, rather than an error
message.
(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
(dfs_accumulate_vtbl_inits): A lost primary virtual base may
be between ORIG_BINFO and RTTI_BINFO, but neither of them.
Don't set BINFO_VTABLE for a primary virtual base.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r43006
Loren J. Rittle [Fri, 8 Jun 2001 03:55:43 +0000 (03:55 +0000)]
eh_alloc.cc: Ensure that required macros are defined before including gthr.h.
* libsupc++/eh_alloc.cc: Ensure that required macros are
defined before including gthr.h. Ensure that we get the
version of gthr.h for which we know how to provide a
configuration.
* libsupc++/eh_globals.cc: Likewise. And, bring the threading
code path into line with the current EH model. Use std, where
appropriate.
Co-Authored-By: John David Anglin <dave@hiauly1.hia.nrc.ca>
From-SVN: r42999
* acinclude.m4 (GLIBCPP_ENABLE_THREADS): Completely rework to
setup and use gthr*.h files. In particular, make gthr.h files
namespace-clean in the staging area (they don't have to be for
libgcc.a).
* aclocal.m4: Regenerate.
* configure: Regenerate.
* include/bits/c++config: Cleanup threading configuration macros.
In particular, define __STL_GTHREADS macro which controls...
* include/bits/stl_threads.h: ...a brand new gthr.h-based
configuration here.
* config/c_io_stdio.h: Include staged gthr.h instead of local
thread configuration file. Always use __gthread_mutex_t
instead of __mutext_type (or int).
* include/bits/std_fstream.h: Likewise.
* docs/html/17_intro/howto.html: Remove placeholder comment in
case this configuration patch didn't make it. Add advice that
section only applies if configured with --enable-threads.
* docs/html/23_containers/howto.html: Reword to make clear
that _PTHREADS is no longer required for any port to be
correctly using STL with threads. Add advice that section
only applies if configured with --enable-threads.
Co-Authored-By: John David Anglin <dave@hiauly1.hia.nrc.ca>
From-SVN: r42998
Stan Shebs [Fri, 8 Jun 2001 02:28:04 +0000 (02:28 +0000)]
darwin.h (ENCODE_SECTION_INFO): Define.
* config/darwin.h (ENCODE_SECTION_INFO): Define.
(REDO_SECTION_INFO_P): Ditto.
(STRIP_NAME_ENCODING): Ditto.
(ASM_DECLARE_OBJECT_NAME): Use ENCODE_SECTION_INFO.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Ditto.
(ASM_OUTPUT_LABELREF): Use STRIP_NAME_ENCODING.
(GEN_LAZY_PTR_NAME_FOR_SYMBOL): Ditto.
* config/darwin.c: No longer include c-tree.h.
(machopic_classify_ident): Rewrite to use symbol encoding.
(lookup_name_darwin): Remove.
(machopic_non_lazy_ptr_name): Handle encoded symbols.
(machopic_stub_name): Use STRIP_NAME_ENCODING.
(machopic_validate_stub_or_non_lazy_ptr): Ditto.
(machopic_finish): Ditto, remove test of decl.
(update_non_lazy_ptrs): New function.
(darwin_encode_section_info): New function.
* config/darwin-protos.h: Declare it.
* config/rs6000/rs6000.c (machopic_output_stub): Use
STRIP_NAME_ENCODING.
* alpha/osf.h (CPP_XFLOAT_SPEC): Define.
(CPP_SUBTARGET_SPEC): Use it.
(ASM_OLDAS_SPEC): Define.
(ASM_SPEC): Use it.
(SUBTARGET_EXTRA_SPECS): Define, declare the new specs above.
Joseph Myers [Thu, 7 Jun 2001 16:41:27 +0000 (17:41 +0100)]
tm.texi (TARGET_SWITCHES, [...]): Adjust markup.
* doc/tm.texi (TARGET_SWITCHES, TARGET_OPTIONS): Adjust markup.
Document use of N_(...), and show it in examples. Note that
documentation should be added to invoke.texi. Avoid an overfull
hbox.
Thu Jun 7 12:12:58 CEST 2001 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Call split_all_insns
before reg-stack and shorten-branches. Do shorten-branches
after reg-stack.
* final.c (shorten_branches): Remove insn splitting code.
Joseph Myers [Thu, 7 Jun 2001 07:27:49 +0000 (08:27 +0100)]
update_web_docs, [...]: Check out files that may be in the Attic.
* update_web_docs, doc_exclude: Check out files that may be in the
Attic. Check out texinfo.tex. Don't generate anything from
c-tree.texi. Generate PostScript output from manuals.
Jason Merrill [Wed, 6 Jun 2001 21:52:52 +0000 (17:52 -0400)]
cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
(struct lang_decl_flags): Lose generate_with_vtable_p.
(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
* class.c (copy_virtuals): Adjust.
* decl2.c (mark_vtable_entries): Adjust.
* method.c (make_thunk, build_vtable_entry): Adjust.
* class.c (update_vtable_entry_for_fn): Only look as far as the
first defining class.
(build_vtbl_initializer): Put nothing in the slot for a function only
defined in a lost primary virtual base.
(add_vcall_offset_vtbl_entries_1): Use the same code for
the lost primary case and the normal case.
(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
(get_vfield_offset, get_derived_offset): Lose.
(dfs_find_final_overrider): Use look_for_overrides_here.
(get_matching_virtual): New fn.
* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
not BV_VCALL_INDEX.
* search.c (look_for_overrides_here): Split out from...
(look_for_overrides_r): Here.
* class.c (find_final_overrider): Return error_mark_node on error.
Jan Hubicka [Wed, 6 Jun 2001 12:57:31 +0000 (14:57 +0200)]
i386.md (floatdi?f): Avoid usinf of SSE instructions if TARGET_64BIT is false.
* i386.md (floatdi?f): Avoid usinf of SSE instructions
if TARGET_64BIT is false.
(floatdi?f_i386_only): New insn.
(floatdi?f_i386): Disable for !TARGET_64BIT.
* (min?f, max?f splitters): Handle case where
operands are cross-matched.
* i386.c (x86_branch_hints): New global variable
(print_operand): Support outputting of branch prediction hints.
* i386.md (conditional jump patterns): Add branch prediction hints
to the template.
* i386.h (x86_branch_hints): Declare
(TARGET_BRANCH_PREDICTION_HINTS): New macro.
(PRINT_OPERAND_FUNCT_VALID_P): New.
* final.c (final_forward_branch_p): New function.
Mark Mitchell [Wed, 6 Jun 2001 03:15:33 +0000 (03:15 +0000)]
pt.c (instantiate_decl): Tell the repository code about the clones, not the cloned functions.
* pt.c (instantiate_decl): Tell the repository code about the
clones, not the cloned functions.
* repo.c (repo_template_used): Explicitly instantiate the cloned
function, not the clones.
* dwarf2.h (DW_EH_PE_aligned): New.
* dwarf2asm.c (eh_data_format_name): Name it.
(dw2_asm_output_encoded_addr_rtx): Align for it.
* dwarf2out.c (output_call_frame_info): Handle it for personality
routine and LSDA pointers.
Mark Mitchell [Tue, 5 Jun 2001 20:32:41 +0000 (20:32 +0000)]
print-rtl.c (xspaces): Remove.
* print-rtl.c (xspaces): Remove.
(print_rtx): Use printf field-width, rather than xpsaces, to
indent.
* toplev.c (main): Disable sibling-call optimization if we are
handling exceptions.
* reload1.c (reload): Delete all USEs generated during reload.
Nathan Sidwell [Tue, 5 Jun 2001 12:53:52 +0000 (12:53 +0000)]
call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and ICS_BAD_FLAG on created conversion.
cp:
* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
ICS_BAD_FLAG on created conversion.
(compare_ics): Break out rank.
testsuite:
* g++.old-deja/g++.other/conv7.C: New test.
Martin Kahlert [Tue, 5 Jun 2001 09:46:36 +0000 (09:46 +0000)]
natClass.cc (_Jv_IsAssignableFrom): Ensure that ancestors table index is within allowed bounds.
2001-06-05 Martin Kahlert <martin.kahlert@infineon.com>
Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* java/lang/natClass.cc (_Jv_IsAssignableFrom): Ensure that ancestors
table index is within allowed bounds. Ensure that we dont try to access
class itable at a negative offset. Avoid an ancestor table lookup if
source is a primitive type class.
(isInstance): Remove redundant isPrimitive() check.
Jan Hubicka [Mon, 4 Jun 2001 18:04:36 +0000 (18:04 +0000)]
rtlanal.c (operand_preference): Fix preference for objects.
* rtlanal.c (operand_preference): Fix preference for objects.
* gcse.c (handle_avail_expr): Be prepared to handle single_set
parallels.
* combine.c (if_then_else_cond): Use simplify_subreg instead
of operand_subword.
* integreate.c (sub_constants): Likewise.
* emit-rtl.c (constant_subword): Deprecate; remove most of code
and use simplify_gen_subreg.
Mon Jun 4 19:55:23 CEST 2001 Lars Brinkhoff <lars@nocrew.org>
* sibcall.c (skip_copy_to_return_value): recognize the situation
when the called function's return value is copied into an
intermediate pseudo, and then into the calling functions return
value register.
Brendan Kehoe [Mon, 4 Jun 2001 17:42:22 +0000 (13:42 -0400)]
std_bitset.h (bitset::test): Fix __pos >= _Nb comparison; all positions must be < _Nb.
2001-06-04 Brendan Kehoe <brendan@zen.org>
Phil Edwards <pme@sources.redhat.com>
* include/bits/std_bitset.h (bitset::test): Fix __pos >= _Nb
comparison; all positions must be < _Nb.
* testsuite/23_containers/bitset_members.cc: New file.
Co-Authored-By: Phil Edwards <pme@gcc.gnu.org>
From-SVN: r42859
* lib/g++.exp (g++_include_flags): Change `args' to gccpath's value.
(g++_link_flags): Likewise.
(g++_init): Pass gccpath's value to two previous functions.
Jan Hubicka [Mon, 4 Jun 2001 14:52:14 +0000 (16:52 +0200)]
simplify_rtx.c (simplify_subreg): Keep subregs on return values...
* simplify_rtx.c (simplify_subreg): Keep subregs on return values,
check CLASS_CANNOT_CHANGE_MODE before avoiding subreg on hard reg,
in case register wasn't OK previously, accept it now; allow
subregs of frame pointer if reload completed and frame pointer
is not needed.
* combine.c (sombine_simplify_rtx): Fix comment;
use subreg_lowpart_offset instead of subreg_lowpart_p
(gen_lowpart_for_combine): Use subreg_lowpart_offset.
* rtl.h (subreg_lowpart_parts_p): Kill.
(subreg_lowpart_offset, subreg_highpart_offset): Declare.
* simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset.
* emit-rtl.c (gen_lowpart_SUBREG): Use subreg_lowpart_offset;
(gen_lowpart_common): Likewise.
(subreg_lowpart_p): Likewise.
(subreg_lowpart_parts_p): Kill.
(subreg_lowpart_offset, subreg_highpart_offset): New function.
* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
to simplify SUBREG and REG.
(gen_highpart): Use simplify_gen_subreg for all simplifications.
* emit-rtl.c (gen_realpart, gen_imagpart): Do not handle
CONCAT specially.
* rtlanal.c (replace_regs): Use simplify_gen_subreg
Gerald Pfeifer [Mon, 4 Jun 2001 14:12:47 +0000 (16:12 +0200)]
update_web_docs (WWWBASE_PREFORMATTED, PREPROCESS): New variables.
* update_web_docs (WWWBASE_PREFORMATTED, PREPROCESS): New
variables.
Fix a comment and add another one.
Generate the installation documentation in HTML format from
gcc/doc/install.texi.