Benjamin Kosnik [Sun, 25 Aug 2002 17:44:36 +0000 (17:44 +0000)]
acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Set GLIBCPP_BUILD_ABI_CHECK based on cross compiling, build, host variables.
2002-08-25 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Set
GLIBCPP_BUILD_ABI_CHECK based on cross compiling, build, host
variables.
* aclocal.m4: Regenerate.
* testsuite/Makefile.am (noinst_PROGRAMS): Make conditional on
native compiling.
Jason Merrill [Fri, 23 Aug 2002 12:00:43 +0000 (08:00 -0400)]
re PR c++/5607 (No pointer adjustment in covariant return types)
* langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro.
* langhooks.c (lhd_expr_size): Define default.
* langhooks.h (struct lang_hooks): Add expr_size.
* explow.c (expr_size): Call it.
(int_expr_size): New fn.
* expr.h: Declare it.
* expr.c (expand_expr) [CONSTRUCTOR]: Use it to calculate how
much to store.
cp/
PR c++/5607
* search.c (check_final_overrider): No longer static.
* class.c (update_vtable_entry_for_fn): Call it.
* cp-tree.h: Adjust.
* cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
(cp_expr_size): New fn.
* call.c (convert_arg_to_ellipsis): Promote non-POD warning to error.
* typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
Alan Modra [Fri, 23 Aug 2002 01:20:21 +0000 (01:20 +0000)]
rs6000.c (output_mi_thunk): Don't determine insns for loading delta with num_insns_constant_wide.
* config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns
for loading delta with num_insns_constant_wide. Calculate
delta_low, delta_high without using a conditional.
Franz Sirl [Mon, 19 Aug 2002 18:59:32 +0000 (18:59 +0000)]
[multiple changes]
2002-06-24 Jeff Law <law@redhat.com>
* flow.c (propagate_one_insn): When removing an insn
with a REG_LIBCALL note but not the entire libcall sequence,
delete the associated REG_RETVAL note.
2002-06-04 Jeff Law <law@redhat.com.
David Edelsohn <edelsohn@gnu.org>
Michael Matz <matz@kde.org>
* sched-int.h (struct deps): New field libcall_block_tail_insn.
* sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
* sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
is set, then mark the current insn as being part of a libcall
scheduling group.
(sched_analyze): Set and clear libcall_block_tail_insn appropriately.
* haifa-sched.c (schedule_block): Do not count USE or CLOBBER
insns against the issue rate.
2002-05-30 Jeff Law <law@redhat.com>
* flow.c (propagate_one_insn): Revise yesterday's patch. Delete
a dead insn with a REG_RETVAL note when the entire libcall is not
dead and remove the associated REG_LIBCALL note at the same time.
2002-05-29 Jeff Law <law@redhat.com>
* flow.c (propagate_one_insn): Do not remove a dead insn if it
contains a REG_RETVAL note.
* haifa-sched (sched_analyze): Remove another useless clearing
of SCHED_GROUP_P I missed yesterday.
2002-05-28 David Edelsohn <edelsohn@gnu.org>
Jeff Law <law@redhat.com>
Benjamin Kosnik [Thu, 15 Aug 2002 22:51:02 +0000 (22:51 +0000)]
re PR libstdc++/7445 (poor performance of std::locale::classic() in multi-threaded applications)
2002-08-15 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/stdio_filebuf.h (stdio_filebuf): Explicitly set
_M_buf_size_opt to zero when unbuffering.
* include/bits/fstream.tcc (filebuf::showmanyc): Simplify.
Consistency checks for _M_buf_size_opt.
Neil Booth [Thu, 15 Aug 2002 19:47:44 +0000 (19:47 +0000)]
re PR preprocessor/7358 (Changes to Sun's make Dependencies)
PR preprocessor/7358
PR preprocessor/7357
PR preprocessor/7526
* cppfiles.c (stack_include_file): Ignore main file if
appropriate. Correct test of whether a dependency should
be output.
* cppinit.c (init_dependency_output): Ignore main file
for SUNPRO_DEPENDENCIES.
(struct lang_flags): Rename trigraphs std.
(set_lang): Update.
* cpplib.c (run_directive): Kludge so _Pragma dependency works.
* cpplib.h (struct cpp_options): New members.
* cppmacro.c (collect_args): Flag whether to swallow a possible
future comma pasted with varargs.
(replace_args): Use this flag.
* doc/cpp.texi: Update varargs extension documentation.
* doc/cppenv.texi: Update.
testsuite:
* gcc.dg/cpp/_Pragma3.c, gcc.dg/cpp/vararg3.c, gcc.dg/cpp/vararg4.c:
New tests.
Nathan Sidwell [Sun, 4 Aug 2002 13:09:31 +0000 (13:09 +0000)]
re PR c++/7470 (Vtable: virtual function pointers not in declaration order)
PR 7470.
C++ ABI change - vfunc ordering.
* class.c (add_virtual_function): Remove.
(dfs_modify_all_vtables): Take list of all declared
virtuals. Assign all that are not in primary base.
(check_for_override): Adjust comments.
(create_vtable_ptr): Take single list of virtuals. Build chain
of declared virtuals here.
(layout_class_type): Take single list of virtuals. Adjust.
(finish_struct_1): Keep virtuals on single list. Adjust.
Jakub Jelinek [Thu, 1 Aug 2002 21:29:18 +0000 (23:29 +0200)]
[multiple changes]
2002-08-01 Benjamin Kosnik <bkoz@redhat.com>
* g++.old-deja/g++.abi/ptrflags.C (expect): Change
__qualifier_flags to __flags.
2002-08-01 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
* config/linker-map.gnu: Change CXXABI_1 to CXXABI_1.2,
GLIBCPP_3.1 to GLIBCPP_3.2.
2002-07-31 Benjamin Kosnik <bkoz@redhat.com>
Mark Mitchell <mark@codesourcery.com>
PR libstdc++/7442
* libsupc++/cxxabi.h (class __base_class_type_info::hwm_bit):
Change to __hwm_bit.
(__class_type_info): And here.
2002-07-31 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7442
* libsupc++/cxxabi.h
(__base_class_info): Change to __base_class_type_info. 2.9.5p6c
(__base_class_info::__base): Change to __base_type. 2.9.5p6c
(__base_class_info::offset_shift): Change to __offset_shift. 2.9.5p6c
(__vmi_class_type_info::__base_info): Don't make const, of type
__base_class_type_info, as per 2.9.5p6c
(__pbase_type_info::__qualifier_flags): Change to __flags, as per
2.9.5p7.
(__pbase_type_info::__qualifier_masks): Change to __masks, as per
2.9.5p7.
(__pointer_to_member_type_info::__context_class): Change member to
__context, as per 2.9.5p9.
* libsupc++/tinfo2.cc (__pointer_catch): Change __context_class to
__context.
* libsupc++/tinfo2.cc (__do_catch): Change __qualifier_flags to
__flags.
* libsupc++/tinfo.cc (__do_find_public_src): Change __base to
__base_type.
* libsupc++/tinfo.cc (__do_dyncast): Same.
* libsupc++/tinfo.cc (__do_upcast): Same.
2002-07-31 Simon Whomsley <whomsley@avacadcam.com>
* cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
(CPTI_TYPE_INFO_PTR_TYPE): ... this.
(tinfo_decl_type): Replace with ...
(type_info_ptr_type): ... this.
(import_export_tinfo): Declare.
(tinfo_decl_p): Rename to ...
(unemitted_tinfo_decl_p): ... this.
* decl2.c (import_export_decl): Break out tinfo handling into ...
(import_export_tinfo): ... here. New function.
(finish_file): Adjust.
* rtti.c (TINFO_REAL_NAME): New macro.
(init_rtti_processing): Create the tinfo types.
(get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
(get_tinfo_decl): Adjust.
(get_tinfo_ptr): New function.
(get_type_id): Use it.
(tinfo_base_init): Create vtable decl here, if it doesn't exist.
(ptr_initializer): Use get_tinfo_ptr.
(ptm_initializer): Likewise.
(synthesize_tinfo_var): Break into ...
(get_pseudo_ti_init): ... this. Just create the initializer.
(get_pseudo_ti_desc): .. and this.
(create_real_tinfo_var): Remove.
(create_pseudo_type_info): Don't create the vtable decl here.
(get_vmi_pseudo_type_info): Remove.
(create_tinfo_types): Adjust.
(tinfo_decl_p): Rename to ...
(unemitted_tinfo_decl_p): ... here. Adjust.
(emit_tinfo_decl): Adjust. Create the initializer.
2002-06-14 Jason Merrill <jason@redhat.com>
C++ ABI changes.
* class.c (build_base_field): Set DECL_PACKED.
(layout_class_type): Don't use tail padding of PODs.
* mangle.c (write_unqualified_name): Fix template conversion op
mangling.
2002-05-18 Jason Merrill <jason@redhat.com>
PR c++/6611
* decl2.c (import_export_decl): If we clear
DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
2002-05-14 Jason Merrill <jason@redhat.com>
* rtti.c (get_tinfo_decl): Don't call comdat_linkage.
Do set DECL_COMDAT.
(synthesize_tinfo_var): Take the public decl.
(create_real_tinfo_var): Likewise. Check DECL_COMDAT.
(emit_tinfo_decl): Adjust. Call import_export_decl.
* decl2.c (import_export_decl): Simplify tinfo decl handling.
gcc/testsuite/ChangeLog
2002-07-24 Roger Sayle <roger@eyesopen.com>
* gcc.c-torture/execute/memset-3.c: New testcase.
2002-06-14 Jason Merrill <jason@redhat.com>
* g++.dg/abi/layout1.C: New test.
* g++.dg/abi/layout2.C: New test.
* g++.dg/abi/mangle8.C: New test.
PR libstdc++/7186
* include/bits/stl_deque.h (_Deque_iterator::operator-):
Make non-member, as already happens for the comparison
operators in accord with DR179 (Ready).
* testsuite/23_containers/deque_operators.cc: Add test02.
2002-07-04 Benjamin Kosnik <bkoz@redhat.com>
Jack Reeves <jackw_reeves@hotmail.com>
* include/std/std_streambuf.h (basic_streambuf::_M_buf): Change to
size_t, from int_type.
(basic_streambuf::_M_buf_size_opt): Same.
(basic_streambuf::_S_pback_sizex): Same.
* include/bits/streambuf.tcc: Same.
* include/std/std_streambuf.h (basic_streambuf::snextc): Use
eq_int_type.
(basic_streambuf::uflow): Same.
* include/bits/sstream.tcc (basic_stringbuf::overflow): Use
to_char_type.
* include/bits/basic_ios.tcc (basic_ios::init): Use _CharT().
* include/bits/streambuf.tcc (basic_streambuf::xsgetn): Use
eq_int_type.
(basic_streambuf::xsputn): Same.
(__copy_streambufs): Same.
2002-07-02 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/6642
* include/bits/stl_iterator.h
(__normal_iterator::operator-(const __normal_iterator&)):
Make non-member, as already happens for the comparison
operators in accord with DR179 (Ready).
* testsuite/24_iterators/iterator.cc: Add test from the PR.
2002-07-02 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6410
* include/bits/locale_facets.h (moneypunct::moneypunct): Add const
char* name parameter.
* config/locale/gnu/monetary_members.cc: Use it.
* config/locale/generic/monetary_members.cc: Same.
* src/localename.cc (_Impl::_Impl(const char*, size_t)): Use it.
2002-07-01 Benjamin Kosnik <bkoz@redhat.com>
* configure.in (libtool_VERSION): Bump to 5:0:0.
* configure: Regenerate.
2002-05-19 Paolo Carlini <pcarlini@unitus.it>
* testsuite/23_containers/deque_operators.cc (test01):
Fix minor typo in last commit.
2002-05-18 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/6503
* include/bits/stl_deque.h (_Deque_iterator::operator==,
operator!=, operator<, operator>, operator>=, operator<=):
Make non-member functions, to allow comparing const and
non-const iterators in any order.
* testsuite/23_containers/deque_operators.cc: New testfile.
Nick Clifton [Sun, 21 Jul 2002 12:09:03 +0000 (12:09 +0000)]
Import following patch from mainline:
2002-03-18 Bernd Schmidt <bernds@redhat.com>
* config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart
instead of gen_rtx_SUBREG.
(arm_reload_out_hi): Use gen_lowpart instead of
gen_rtx_SUBREG to access QImode components.
* config/arm/arm.md: Disable zero_extend split for QImode
subregs in BIG_ENDIAN mode.
(storehi_bigend): Match use of least significant byte.
(storeinthi): Remove extraneous SUBREG.
Add missing construction of operands[2].
(movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
(movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.