* java/util/Vector.java (ensureCapacity): Don't increment modCount.
(addElement): Don't increment elementCount twice. Doh.
* java/util/ArrayList.java (add): Only call ensureCapacity if the
array needs to be expanded.
(addAll): Ditto.
* java/util/Collections.java (UnmodifiableCollection): Implement
toString().
(UnmodifiableList): Throw UnsupportedOperationException from
modification methods. Set `l' from the one-parameter constructor.
(UnmodifiableMap): Implement toString().
(SynchronizedCollection): Ditto.
(SynchronizedList): Set `l' from the one-parameter constructor.
(SynchronizedSortedSet): Set `ss' from the one-parameter constructor.
(SynchronizedMap): Implement toString().
Mark Mitchell [Mon, 27 Nov 2000 07:09:20 +0000 (07:09 +0000)]
tree.h (mark_tree_hashtable): New function.
* tree.h (mark_tree_hashtable): New function.
* tree.c (mark_tree_hashtable_entry): New function.
(mark_tree_hashtable): Likewise.
* tree.c (struct list_hash): Remove.
(list_hash_table): Make it be an htab.
(struct list_proxy): New type.
(list_hash_eq): New function.
(list_hash_pieces): Renamed from ...
(list_hash): ... this.
(list_hash_lookup): Remove.
(list_hash_add): Remove.
(hash_tree_cons): Use the generic hashtable.
(mark_list_hash): Remove.
(init_tree): Create the hashtable.
Mark Mitchell [Mon, 27 Nov 2000 04:25:32 +0000 (04:25 +0000)]
elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not a list, to keep track of the sections.
* config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
a list, to keep track of the sections.
* tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
parameter provided will always be a canonical string.
Tom Tromey [Mon, 27 Nov 2000 04:05:23 +0000 (04:05 +0000)]
prims.cc (_Jv_NewObjectArray): Use const_cast to initialize length field of array.
* prims.cc (_Jv_NewObjectArray): Use const_cast to initialize
length field of array.
(_Jv_NewPrimArray): Likewise.
* gcj/array.h (__JArray): `length' field now const. Added
constructor.
Benjamin Kosnik [Mon, 27 Nov 2000 00:05:39 +0000 (00:05 +0000)]
acinclude.m4: Only sanity check for compiler version when configuring.
2000-11-26 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4: Only sanity check for compiler version when
configuring. More fixes for 'make clean'.
* aclocal.m4: Regenerate.
* configure: Regenerate.
Joseph Myers [Sun, 26 Nov 2000 20:02:40 +0000 (20:02 +0000)]
RELEASE-PREP: Remove obsolete EGCS reference.
* RELEASE-PREP: Remove obsolete EGCS reference.
* g77.texi: Adjust reference to EGCS as something current.
* lang-options.h (FTNOPT): Remove macro and obsolete comment.
Include doc strings directly in option listing instead of through
this macro.
* root.texi: Remove support for multiple different (FSF and EGCS)
distributions of g77.
* g77install.texi: Remove conditioned out instructions applying
only to obsolete distributions of g77 not as part of GCC. Change
"superceded" to the correct spelling "superseded".
Ulrich Drepper [Sun, 26 Nov 2000 19:12:18 +0000 (19:12 +0000)]
dwarf2out.c (output_file_names): New function.
* dwarf2out.c (output_file_names): New function. Compute minimal
combination of directory and file name table and emit them.
(output_line_info): Remove code to emit directory and file name
table and call output_file_names instead.
(file_info_cmp): Helper function to sort directory names.
Gabriel Dos Reis [Sun, 26 Nov 2000 12:20:50 +0000 (12:20 +0000)]
tests_flags.in: New file.
libstdc++-v3:
* tests_flags.in: New file. Split out of ...
* mkcheck.in: ... this. Move flags computation into
tests_flags.in.
* configure.in: Add support for tests_flags.
* confiigure: Regenerate.
* java/lang/Thread.java (context_class_loader): New private data.
(getContextClassLoader): New method.
(setContextClassLoader): New method.
(Thread): Initialize context_class_loader.
* java/net/URLClassLoader.java: Import java.util.Enumeration.
(getResource): Rename to findResource.
(findResource): New method. Used to be getResource.
(getResourceAsStream): Deleted.
(jarFileize): Extracted logic from URLClassLoader constructor into
this new private method.
(addURL): New protected method.
(URLClassLoader): Call jarFileize. Use addElement instead of
insertElementAt.
(findResources): New method.
* java/lang/ClassLoader.java: Import java.util.Enumeration.
(getResource): Implement correct logic.
(findResource): New method.
(getResources): New method.
(findClass): Create a ClassNotFoundException with the name of the
class rather than nothing at all.
(defineClass) Only throw ClassFormatError.
* java/lang/Class.java (forName): New method.
* java/lang/Class.h (forName): New method.
* java/lang/natClass.cc (forName): New method.
Bryce McKinlay [Sun, 26 Nov 2000 01:48:04 +0000 (01:48 +0000)]
System.java (setProperties): Only call init_properties() if properties is null.
2000-11-24 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/System.java (setProperties): Only call init_properties()
if properties is null.
(getProperties): Ditto.
(getProperty): Ditto.
(setProperty): Call init_properties if properties are null.
(prop_init): Remove field.
* java/lang/natSystem.cc (init_properties): Synchronize the entire
method. Check for null properties after synchronizing instead of
prop_init flag. Set the properties field last for thread safety.
* java/io/ObjectInputStream.java (ObjectInputStream): If DEBUG is set,
test for gcj.dumpobjects property and enable object stream dumping
if it is set.
(dumpElement): No longer native.
(dumpElementln): Ditto.
(setDump): Do not define.
* java/io/natObjectInputStream.cc (dumpElement): Removed.
(dumpElementln): Removed.
(setDump): Removed.
2000-11-24 Bryce McKinlay <bryce@albatross.co.nz>
* configure: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (built_java_source_files): Add Configuration.java.
* configure.in: Add Configuration.java to CONFIG_FILES. Set
LIBGCJDEBUG substitution if --enable-libgcj-debug is specified.
Create `gnu' directory in the build tree.
* gnu/classpath/Configuration.java.in: New file.
* c-common.h (DECL_C_HARD_REGISTER): New.
* c-decl.c (finish_decl): Set it for asm register variables.
* c-semantics.c (emit_local_var): Test it when instantiating one.
Jakub Jelinek [Sat, 25 Nov 2000 17:38:58 +0000 (18:38 +0100)]
sparc.md (muldi3_v8plus): Remove H constraint.
* config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
Handle CONST_INT as second argument.
* config/sparc/sparc.c (set_extends): Remove first argument.
Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
MOV.
(sparc_check_64): Abort if first argument is not REG.
If it is DImode REG, look at the lower register of the register
pair.
Alexandre Oliva [Sat, 25 Nov 2000 06:35:09 +0000 (06:35 +0000)]
sh.h (TARGET_NONE): New.
* config/sh/sh.h (TARGET_NONE): New.
(TARGET_SWITCHES): For all variant-selecting switch, use
TARGET_NONE to reset all other variant-selecting switch. Added
empty strings to avoid warnings.
(TARGET_DEFAULT): Set to SH1_BIT.
Alexandre Oliva [Sat, 25 Nov 2000 04:57:39 +0000 (04:57 +0000)]
sh.md (sibcalli, [...]): New insns.
* gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
(sibcall_pcrel): New insn_and_split.
(sibcall, sibcall_value, sibcall_epilogue): New expands.
Alexandre Oliva [Sat, 25 Nov 2000 04:42:27 +0000 (04:42 +0000)]
sh.md (GOTaddr2picreg, [...]): Don't set current_function_uses_pic_offset_table.
* config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
symPLT_label2reg, call, call_value): Don't set
current_function_uses_pic_offset_table.
* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
takes it into account.
(FINALIZE_PIC): Delete, useless.
(LEGITIMATE_CONSTANT_P): Delete, unused.
* config/sh/sh.c (sh_expand_prologue): Don't use
current_function_uses_pic_offset_table. Don't special-case
PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and
PIC is enabled.
(sh_expand_epilogue, initial_elimination_offset): Don't
special case PIC_OFFSET_TABLE_REGNUM.
* configure.in (AC_OUTPUT_COMMANDS): Remove, just run scripts as
is, so that checks for existence of generated files actually work.
* configure: Regenerate.
Alexandre Oliva [Fri, 24 Nov 2000 22:06:31 +0000 (22:06 +0000)]
sh.h (GENERAL_REGISTER_P, [...]): New macros.
* config/sh/sh.h (GENERAL_REGISTER_P,
GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them
all over.
(SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
* config/sh/sh.c: Use new macros.
* config/sh/sh.md: Likewise.
Tom Tromey [Fri, 24 Nov 2000 21:02:36 +0000 (21:02 +0000)]
prims.cc (_Jv_NewObjectArray): Use palcement new to create array.
* prims.cc (_Jv_NewObjectArray): Use palcement new to create
array.
(_Jv_NewPrimArray): Likewise.
Include <new>.
* gcj/array.h (__JArray): `length' field now const. Added
constructor.
(class JArray): Added constructor.
Denis Chertykov [Fri, 24 Nov 2000 20:02:40 +0000 (20:02 +0000)]
avr.c (out_tsthi,out_tstsi): Test simplification bug fixed.
* config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
fixed.
(machine_dependent_reorg): Wrong optimization based on
NOTICE_UPDATE_CC removed.
Nathan Sidwell [Fri, 24 Nov 2000 10:30:46 +0000 (10:30 +0000)]
c-parse.in (unary_expr): Move VA_ARG from here ...
* c-parse.in (unary_expr): Move VA_ARG from here ...
(primary): ... to here.
cp:
* parse.y (unary_expr): Move VA_ARG from here ...
(primary): ... to here.
testsuite:
* g++.old-deja/g++.other/vaarg4.C: New test.
* gcc.c-torture/compile/20001123-1.c: New test.
Nathan Sidwell [Fri, 24 Nov 2000 09:56:27 +0000 (09:56 +0000)]
semantics.c (finish_id_expr): If type is error_mark, return error_mark.
cp:
* semantics.c (finish_id_expr): If type is error_mark, return
error_mark.
testsuite:
* g++.other/crash24.C: Adjust and remove XFAIL.
* g++.other/crash37.C: New test.
cp:
* pt.c (lookup_template_class): Simplify loop exit constructs.
Cope when there is no partial instantiation of a template
template member.
testsuite:
* g++.old-deja/g++.pt/instantiate9.C: New test.
Alexandre Oliva [Thu, 23 Nov 2000 13:23:04 +0000 (13:23 +0000)]
emit-rtl.c (gen_lowpart_common): Use word 0 if register mode is narrower than requested mode.
* emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
is narrower than requested mode.
(gen_highpart): Abort if register mode is narrower than
requested mode.
* config/os/gnu-linux/bits/os_defines.h: Include <features.h>.
If not glibc 2.1 or higher, include <gnu/types.h> and define
__off64_t as __loff_t and #define __THROW as empty.
* libio/libio.h [__P]: Move __THROW and __PMT into their own
ifndef:s.
Benjamin Kosnik [Thu, 23 Nov 2000 06:46:31 +0000 (06:46 +0000)]
Make deprecated strstream header consistent with new and new.h.
2000-11-22 Benjamin Kosnik <bkoz@redhat.com>
Make deprecated strstream header consistent with new and new.h.
* include/backward/strstream.h: Add. Use using declarations to
scope strstreambuf, istrstream, ostrstream, strstream to global
scope.
* include/backward/strstream: Remove using declarations.
* src/Makefile.am (base_headers): Add strstream.
* src/Makefile.in: Regenerate.
* include/backward/new.h (_CPP_BACKWARD_NEW_H): Change macro guard
to be consistent with other headers.
Alexandre Oliva [Thu, 23 Nov 2000 06:37:23 +0000 (06:37 +0000)]
final.c (output_addr_const): Simplify.
* final.c (output_addr_const) [LABEL_REF]: Simplify.
[MINUS]: Enclose non-CONST_INTs in parentheses.
[default]: Try OUTPUT_ADDR_CONST_EXTRA.
* tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
* varasm.c (decode_rtx_const) [CONST]: If it's not something
PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
instead of abort()ing.
* sh.c (output_pic_addr_const): Removed. Fixed all callers.
* sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs
formerly handled in output_pic_addr_const.
* sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
operands of MINUS in CONSTs so that decode_rtx_const() will
accept them.
Alexandre Oliva [Thu, 23 Nov 2000 06:20:16 +0000 (06:20 +0000)]
sh.md (mova_const): New pattern.
* config/sh/sh.md (mova_const): New pattern.
(GOTaddr2picreg): Use it.
* config/sh/sh.c (broken_move): Match it.
(mova_p): Don't match it.
(machine_dependent_reorg): Adjust it.
* parse.y (build_outer_field_access): New local `decl_ctx', use
it. Check for field's context and current class immediate outer
context inheritance.
(outer_field_access_p): Consider fields inherited from the last
enclosing context.
(build_access_to_thisn): Stop at the last enclosing context if
necessary.
Fixes gcj/367.