Neil Booth [Sat, 16 Sep 2000 07:18:06 +0000 (07:18 +0000)]
cpplex.c (push_macro_context): Set an argument's level after calling parse_args.
* cpplex.c (push_macro_context): Set an argument's level after
calling parse_args. We could loop infinitely otherwise.
* gcc.dg/cpp/macro2.c: New testcase.
Benjamin Kosnik [Fri, 15 Sep 2000 22:52:52 +0000 (22:52 +0000)]
locale.cc (locale::locale(const char* __name)): Consolidate name setting.
2000-09-15 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/locale.cc (locale::locale(const char* __name)): Consolidate
name setting. Add checks for NULL __name pointers. Remove calls to
_S_initialize() as initial locale initialization can either be
assumed, or needs to be made consistent throughout locale
constructors.
(locale::locale(const locale& __other, const char* __name,
category __cat): Add checks for NULL name. Add checks for
assignment to self.
* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
const string& __name, category __cat, size_t __refs)): Set correct
name, has_name values.
* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
* docs/22_locale/locale.html: New file, more unfinished docs...
Benjamin Kosnik [Fri, 15 Sep 2000 22:50:11 +0000 (22:50 +0000)]
locale.cc (locale::locale(const char* __name)): Consolidate name setting.
2000-09-15 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/locale.cc (locale::locale(const char* __name)): Consolidate
name setting. Add checks for NULL __name pointers. Remove calls to
_S_initialize() as initial locale initialization can either be
assumed, or needs to be made consistent throughout locale
construtors.
(locale::locale(const locale& __other, const char* __name,
category __cat): Add checks for NULL name. Add checks for
assignment to self.
* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
const string& __name, category __cat, size_t __refs)): Set correct
name, has_name values.
* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
* docs/22_locale/locale.html: New file, more unfinished docs...
Joseph Myers [Fri, 15 Sep 2000 21:16:31 +0000 (22:16 +0100)]
c-common.c (format_wanted_type): New structure.
* c-common.c (format_wanted_type): New structure.
(check_format_types): New function.
(check_format_info): Pass all checking of types of format
arguments, including width and precision arguments, to this new
function.
Jakub Jelinek [Fri, 15 Sep 2000 18:10:11 +0000 (20:10 +0200)]
alpha.h (TARGET_CPU_EV5, [...]): Define.
* config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
(TARGET_OPTIONS): Add tune=.
(alpha_tune_string): Declare.
* config/alpha/alpha.c (override_options): Add cpu_table.
Use alpha_cpu_string first to set both alpha_cpu and target_flags
and then alpha_tune_string to set alpha_cpu only.
Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
* config/alpha/elf.h (ASM_FILE_START): Likewise.
* config/alpha/osf.h (ASM_FILE_START): Likewise.
* config/alpha/openbsd.h (ASM_FILE_START): Likewise.
* i386-protos.h (no_comparison_operator, uno_comparison_operator):
Remove.
(ix86_comparison_operator, ix86_cc_mode): Declare
* i386.h (CCGC, CCGCO): New modes.
(SELECT_CC_MODE): Move offline to ....
* i386.c (ix86_cc_mode): .... here; use new modes.
(ix86_comparison_operator): New.
(fcmov_comparison_operator): Ensure proper mode.
(put_condition_mode): More sanity checking.
(ix86_match_ccmode): Handle new modes.
(ix86_expand_fp_compare): GEU requires CCmode.
(ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
doing it by hand.
* i386.md (cmp?i_ccz_1): Remove
(cmp?i_ccno_1): Use ix86_match_ccmode.
(cmp?i_minus_1): New.
(cmpsi_1): New expander.
(cmpqi_ext_1): Use match_ccmode
(cmpqi_ext_3): New expander.
(cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
(cmpqi_ext_4): Use match_ccmode.
(add?i_?): Use match_ccmode.
(add?i_6): New.
(test?i_ccz_1): Remove
(test?i_1): New.
(testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
(testqi_ext_0): Use ix86_match_ccmode.
(*xorqi_cc_ext_1): Use ix86_match_ccmode.
(xorqi_cc_ext_1): New expander.
(shift patterns): Use CCGOCmode for all shifts except for sar.
(setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
(setcc_3, jcc_3, miv?icc_c): Remove.
alpha.c (alpha_expand_unaligned_load): Force all AND addresses into alias set 0.
* config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
AND addresses into alias set 0.
(alpha_expand_unaligned_store): Likewise.
(alpha_expand_unaligned_load_words): Likewise.
(alpha_expand_unaligned_store_words): Likewise.
Neil Booth [Fri, 15 Sep 2000 05:55:36 +0000 (05:55 +0000)]
cpplex.c (ON_REST_ARG): Correct the test.
* cpplex.c (ON_REST_ARG): Correct the test.
(maybe_paste_with_next): Duplicate a token that fail pasting,
and clear its PASTE_LEFT flag, so that nested pasting attempts
do not occur.
* gcc.dg/cpp/paste10.c: Testcase.
Benjamin Kosnik [Thu, 14 Sep 2000 19:44:03 +0000 (19:44 +0000)]
string.tcc (_Rep::_S_max_size): Use typename for its size_type return type.
2000-09-14 Brendan Kehoe <brendan@zen.org>
* bits/string.tcc (_Rep::_S_max_size): Use typename for its size_type
return type.
* src/Makefile.an (headers): Also install backward/fstream.h.
* src/Makefile.in: Regenerate.
* bits/char_traits.h (char_traits<_CharT>::get_state,
char_traits<char>::get_state, char_traits<wchar_t>::get_state): Pass
argument in by reference, not by value. Uglify to _S_get_state.
(char_traits<*>::__eos): Uglify to _S_eos.
* bits/std_ostream.h (ends(basic_ostream<_CharT, _Traits>& __os)):
Change __eos to _S_eos.
* invoke.texi (H8/300 Options): Add -ms2600.
* config/h8300.c (h8300_init_once): Output an error when -ms2600
is used without -ms.
* config/h8300.h (TARGET_MAC): New.
(TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
(CONDITIONA_REGISTER_USAGE): Disable the mac register on any
machine other than H8/S2600.
* config/h8300.md: Accept mac instructions on the H8/S2600 instead
of the H8/S2000.
reload.c (find_reloads_address_1): Generate reloads for auto_inc pseudos that refer to the original pseudos...
* reload.c (find_reloads_address_1): Generate reloads for auto_inc
pseudos that refer to the original pseudos, not only to their
equivalent memory locations.
defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
* defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
* java/lang/natDouble.cc: Likewise.
* java/lang/reflect/natMethod.cc: Likewise.
* interpret.cc: Likewise. Fix NULLCHECKs that tested a _Jv_word.
* flags.h (flag_dump_rtl_in_asm): Declare.
* toplev.c (flag_dump_rtl_in_asm): Define.
(decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
if -dP is specified.
* rtl.h (print_rtx_head): Declare.
* print-rtl.c (print_rtx_head): Define.
(print_rtx): Print the string pointed to by print_rtx_head
at beginning of each dump line.
(print_rtl): Likewise.
(print_rtl_single): Likewise.
* final.c (final_scan_insn): Dump the insn in the assembly
file for debugging.
* gcc.1: Document -dP option.
* invoke.texi (Debugging Options): Likewise.
configure.in (LIBDATASTARTSPEC): Use `%s' to search for libgcjdata.a.
2000-09-13 Alexandre Oliva <aoliva@redhat.com>
* configure.in (LIBDATASTARTSPEC): Use `%s' to search for
libgcjdata.a.
(GCJ): Support single-tree builds. Add -B`pwd`/ and -I$srcdir.
* acinclude.m4: Arrange for automake to not bring in a new
libtool.m4 for LT_AC_PROG_GCJ. AC_SUBST GCJ.
* Makefile.am: Leave it up to automake to subst GCJ.
* aclocal.m4, configure, Makefile.in: Rebuilt.
Tom Tromey [Wed, 13 Sep 2000 18:15:42 +0000 (18:15 +0000)]
natArray.cc (BooleanClass): New define.
* java/lang/reflect/natArray.cc (BooleanClass): New define.
(get): Ensure Boolean class is initialized.
* java/lang/reflect/natField.cc (BooleanClass): New define.
(get): Ensure Boolean class is initialized.
String.java (CASE_INSENSITIVE_ORDER): New static field.
2000-09-13 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/String.java (CASE_INSENSITIVE_ORDER): New static field.
Initialize with anonymous class.
(compareToIgnoreCase): New method.
* java/lang/ThreadGroup.java (had_uncaught_exception): New field.
(uncaughtException): Set had_uncaught_exception.
* prims.cc (JvRunMain): Check value of had_uncaught_exception and
exit with error status if set.
(_Jv_RunMain): Ditto.
Jason Merrill [Wed, 13 Sep 2000 01:02:52 +0000 (21:02 -0400)]
decl.c (maybe_deduce_size_from_array_init): Set do_default for all non-extern arrays.
* decl.c (maybe_deduce_size_from_array_init): Set do_default for
all non-extern arrays.
* decl.c (grokdeclarator): Complain about 'friend T' for implicit
typenames, too. Downgrade complaint to pedwarn.
(xref_tag): Warn about surprising behavior of 'friend struct T'.
* decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
'class This::Inherited'.
Tom Tromey [Tue, 12 Sep 2000 22:31:00 +0000 (22:31 +0000)]
expr.c (pop_type_0): Return `Object' if trying to merge two interface types.
* expr.c (pop_type_0): Return `Object' if trying to merge two
interface types.
* verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
interface types; `Object' is always a valid supertype.
Tom Tromey [Tue, 12 Sep 2000 22:09:36 +0000 (22:09 +0000)]
re GNATS gcj/343 (can't cast array to serializable)
Fix for PR gcj/343:
* lex.c (java_init_lex): Initialize java_io_serializable.
* parse.y (java_io_serializable): New global.
(valid_ref_assignconv_cast_p): An array can be cast to
serializable.