Alan Modra [Fri, 13 Sep 2002 06:53:05 +0000 (06:53 +0000)]
PR other/7114, target/5967
2002-07-18 Alan Modra <amodra@bigpond.net.au>
PR other/7114, target/5967
* config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
adjustments to first_reg for profiling case.
(output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
Save static chain reg to sp + 12 on ABI_AIX_NODESC.
* config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
(ASM_OUTPUT_REG_POP): Define.
* config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
(ASM_OUTPUT_REG_POP): Undef.
Alan Modra [Fri, 13 Sep 2002 05:22:59 +0000 (05:22 +0000)]
backport: PR c/7150, target/7380
Merge from mainline.
2002-07-24 Alan Modra <amodra@bigpond.net.au>
PR c/7150, target/7380
* config/rs6000/rs6000.md: Remove scratch reg on insns using
addze and similar (plus (comparison r1 r2) r3) insns. Add
missing scratch reg in one case. Formatting fixes.
Benjamin Kosnik [Fri, 13 Sep 2002 02:25:49 +0000 (02:25 +0000)]
[multiple changes]
2002-09-12 Benjamin Kosnik <bkoz@redhat.com>
* libmath/Makefile.am (LIBTOOL): Use --tag CC always for this
directory.
* libmath/Makefile.in: Regenerate.
* src/Makefile.am: Tweak comment.
* src/Makefile.in: Regenerate.
Janis Johnson [Thu, 12 Sep 2002 16:46:12 +0000 (16:46 +0000)]
[multiple changes]
2002-09-12 Janis Johnson <janis187@us.ibm.com>
* doc/compat.texi: New file with new chapter, Binary Compatibility.
and this, which should have been added yesterday:
2002-09-11 Janis Johnson <janis187@us.ibm.com>
* Makefile.in (TEXI_GCC_FILES): Add compat.texi.
* doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and
include its file, compat.texi.
* doc/trouble.texi (Interoperation): Update information about C++ ABI
issues.
* doc/invoke.texi (-fshort-wchar): Move to Code Generation Options.
(-fpcc-struct-return, -freg-struct-return, -fshort-enums,
-fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore):
Warn that these options can break ABI compatibility.
(Many places): Fix overfull hboxes.
* doc/extend.texi: Fix a broken link; fix overfull hboxes.
* doc/install.texi: Fix a typo, some formatting directives, and
overfull hboxes.
* doc/c-tree.texi: Fix overfull hboxes.
* doc/cppopts.texi: Ditto.
* doc/makefile.texi: Ditto.
* doc/rtl.texi: Ditto.
* doc/standards.texi: Ditto.
* doc/tm.texi: Ditto.
Alan Modra [Thu, 12 Sep 2002 02:27:14 +0000 (02:27 +0000)]
emit-rtl.c (set_mem_size): New function.
* emit-rtl.c (set_mem_size): New function.
* expr.h (set_mem_size): Declare.
* config/rs6000/rs6000.c (expand_block_move_mem): Exterminate.
(expand_block_move): Instead, use adjust_address and
replace_equiv_address to generate proper aliasing info.
Move common code out of conditionals. Localize vars.
Janis Johnson [Wed, 11 Sep 2002 16:40:29 +0000 (16:40 +0000)]
Makefile.in (TEXI_GCC_FILES): Add compat.texi.
2002-09-11 Janis Johnson <janis187@us.ibm.com>
* Makefile.in (TEXI_GCC_FILES): Add compat.texi.
* doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and
include its file, compat.texi.
* doc/compat.texi: New file with new chapter, Binary Compatibility.
* doc/trouble.texi (Interoperation): Update information about C++ ABI
issues.
* doc/invoke.texi (-fshort-wchar): Move to Code Generation Options.
(-fpcc-struct-return, -freg-struct-return, -fshort-enums,
-fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore):
Warn that these options can break ABI compatibility.
(Many places): Fix overfull hboxes.
* doc/extend.texi: Fix a broken link; fix overfull hboxes.
* doc/install.texi: Fix a typo, some formatting directives, and
overfull hboxes.
* doc/c-tree.texi: Fix overfull hboxes.
* doc/cppopts.texi: Ditto.
* doc/makefile.texi: Ditto.
* doc/rtl.texi: Ditto.
* doc/standards.texi: Ditto.
* doc/tm.texi: Ditto.
sched-deps.c (sched_analyze_insn): Make sure to add insn to reg_last->sets after flushing the dependency lists to...
* sched-deps.c (sched_analyze_insn): Make sure to add insn
to reg_last->sets after flushing the dependency lists to guarantee
that subsequent clobbers will be dependent on it.
Jakub Jelinek [Fri, 6 Sep 2002 18:32:08 +0000 (20:32 +0200)]
configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets.
* configure.target: Use cpu_include_dir="config/cpu/sparc" for all
sparc targets.
* config/cpu/sparc/bits/atomicity.h: New file.
* config/cpu/sparc/sparc32/bits/atomicity.h: Removed.
* config/cpu/sparc/sparc64/bits/atomicity.h: Removed.
Jakub Jelinek [Fri, 6 Sep 2002 18:11:57 +0000 (20:11 +0200)]
configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets.
* configure.target: Use cpu_include_dir="config/cpu/sparc" for all
sparc targets.
* config/cpu/sparc/bits/atomicity.h: New file.
* config/cpu/sparc/sparc32/bits/atomicity.h: Removed.
* config/cpu/sparc/sparc64/bits/atomicity.h: Removed.
Jakub Jelinek [Fri, 6 Sep 2002 17:54:17 +0000 (19:54 +0200)]
ctype_noninline.h [...]: Remove using _C_legacy::__ctype_*.
* config/os/gnu-linux/bits/ctype_noninline.h
[_GLIBCPP_USE_SHADOW_HEADERS]: Remove using _C_legacy::__ctype_*.
(ctype<char>::classic_table): If _GLIBCPP_C_LOCALE_GNU, return
_S_c_locale->__ctype_b, otherwise temporarily switch to "C" locale
and return __ctype_b.
(ctype<char>::ctype(__c_locale, const mask*, bool, size_t)): If not
_GLIBCPP_C_LOCALE_GNU, temporarily switch to "C" locale and
initialize using __ctype_{b,tolower,toupper}.
(ctype<char>::ctype(const mask*, bool, size_t)): If
_GLIBCPP_C_LOCALE_GNU, initialize using
_S_c_locale->__ctype_{b,tolower,toupper}, otherwise temporarily
switch to "C" locale and initialize using __ctype_{b,tolower,toupper}.
Paolo Carlini [Thu, 5 Sep 2002 21:35:27 +0000 (23:35 +0200)]
re PR libstdc++/7811 (default locale not taken from environment)
2002-09-05 Paolo Carlini <pcarlini@unitus.it>
Roland McGrath <roland@redhat.com>
PR libstdc++/7811
* src/locale.cc (locale::locale(__s)): Use getenv instead
of setenv for the environment locale.
* testsuite/22_locale/ctor_copy_dtor.cc (test03): New.
Co-Authored-By: Roland McGrath <roland@redhat.com>
From-SVN: r56866
Phil Edwards [Thu, 5 Sep 2002 16:10:08 +0000 (16:10 +0000)]
Makefile.am: Use LD_RUN_PATH when linking abi_check.
2002-09-05 Phil Edwards <pme@gcc.gnu.org>
* testsuite/Makefile.am: Use LD_RUN_PATH when linking abi_check.
Fix spelling in comment.
* testsuite/Makefile.in: Regenerate.
* testsuite/abi_check.cc: Use string literals to build 'cmd' rather
than 'quote' and 'bslash'.
Jakub Jelinek [Thu, 5 Sep 2002 07:53:14 +0000 (09:53 +0200)]
ctype_members.cc (ctype<wchar_t>::do_widen(char)): Switch to _M_c_locale_ctype around btowc call.
* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_widen(char)):
Switch to _M_c_locale_ctype around btowc call.
(ctype<wchar_t>::do_widen(const char*, const char *, wchar_t*)):
Switch to _M_c_locale_ctype around mbsrtowcs call.
(ctype<wchar_t>::do_narrow(char)): Switch to _M_c_locale_ctype around
wctob call.
(ctype<wchar_t>::do_narrow(const char*, const char *, wchar_t*)):
Switch to _M_c_locale_ctype around wcsrtombs call.
Jakub Jelinek [Thu, 5 Sep 2002 07:50:45 +0000 (09:50 +0200)]
monetary_members.cc (moneypunct<wchar_t, [...]): Use __uselocale instead of setlocale for glibc 2.3.
* config/locale/gnu/monetary_members.cc
(moneypunct<wchar_t, true>::_M_initialize_moneypunct,
moneypunct<wchar_t, false>::_M_initialize_moneypunct): Use
__uselocale instead of setlocale for glibc 2.3.
Jakub Jelinek [Thu, 5 Sep 2002 07:45:12 +0000 (09:45 +0200)]
c++locale_internal.h: New header.
* config/locale/generic/c++locale_internal.h: New header.
* config/locale/gnu/c++locale_internal.h: New header.
* config/locale/gnu/c_locale.cc: Include it.
* config/locale/gnu/collate_members.cc: Include it.
* config/locale/gnu/ctype_members.cc: Include it.
* config/locale/gnu/messages_members.cc: Include it.
* config/locale/gnu/monetary_members.cc: Include it.
* config/locale/gnu/numeric_members.cc: Include it.
* config/locale/gnu/time_members.cc: Include it.
(_M_put): Reorder __strftime_l and __wcsftime_l arguments to match
glibc.
(_M_initialize_timepunct): Initialize _M_c_locale_timepunct for
C locale.
* acinclude.m4: Include string.h when testing strcoll_l.
For glibc 2.3 provide __-prefixed prototypes.
(CLOCALE_INTERNAL_H): Set, add AC_LINK_FILES line.
* aclocal.m4, configure: Rebuilt.
* include/bits/locale_facets.h: Add declaration of specialization
here.
* config/locale/gnu/messages_members.cc: Add specialization for
messages<wchar_t>.
* config/locale/gnu/messages_members.h: Remove generic definition
of do_get.
* c-tree.h (skip_evaluation): Move declaration...
* c-common.h: ... here.
* c-typeck.c (build_external_ref): Don't assemble_external nor
mark a tree as used if skip_evaluation is set.
* c-parse.in (typeof): New non-terminal to set skip_evaluation
around TYPEOF.
(typespec_nonreserved_nonattr): Use it.
parse.y (sizeof, [...]): New non-terminals to increment skip_evaluation.
* parse.y (sizeof, alignof, typeof): New non-terminals to
increment skip_evaluation. Replace terminals with them and
decrement skip_evaluation at the end of rules using them.
* decl2.c (mark_used): Don't assemble_external if
skipping evaluation.
Mark Mitchell [Tue, 27 Aug 2002 22:49:49 +0000 (22:49 +0000)]
invoke.texi: Document -Wabi.
2002-08-27 Mark Mitchell <mark@codesourcery.com>
* doc/invoke.texi: Document -Wabi.
2002-08-27 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (warn_abi): Declare it.
* decl.c (warn_abi): Define it.
(cxx_decode_option): Set it.
* class.c (layout_virtual_bases): Warn about bugs in G++ that
result in incorrect object layouts.
(layout_class_type): Likewise.
2002-08-27 Mark Mitchell <mark@codesourcery.com>
* testsuite/g++.dg/abi/bitfield5.C: New test.
* testsuite/g++.dg/abi/vbase10.C: Likewise.
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.