Stan Shebs [Sun, 29 Apr 2001 00:12:51 +0000 (00:12 +0000)]
objc-act.c (handle_class_ref): Rewrite to flush target specific code and use new macro...
* objc/objc-act.c (handle_class_ref): Rewrite to flush target
specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
* config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
* tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
* i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
registers in SSE case; fix handling of the immediates.
(negsf2_ifs, abssf2_ifs): Tweak constraints; require
operands to be in regsiters before reload.
(negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
(negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
(abstf,absxf,negtf,negxf splitters): Compute
properly the regnum for x86_64.
(avsdf2_if_rex64): New.
Jeffrey A Law [Sat, 28 Apr 2001 16:53:00 +0000 (16:53 +0000)]
flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC and ADDR_DIFF_VEC insns when...
* flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
into the constant pool.
* jump.c (jump_optimize_1): Remove barrier successors after all
the LABEL_NUSES counds have been computed.
(delete_barrier_successors): When deleting a tablejump insn, also
delete the jump table it uses.
* varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
label into memory.
Jason Merrill [Fri, 27 Apr 2001 23:25:20 +0000 (19:25 -0400)]
except.c (expand_eh_region_start): Don't start a new block.
* except.c (expand_eh_region_start): Don't start a new block.
(expand_eh_region_end): Don't end a block.
* stmt.c (expand_end_bindings): Don't end EH blocks.
(expand_decl_cleanup): Starting an EH region won't change the block.
(mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
(is_eh_region): Lose.
* tree.h: Adjust.
cp-tree.h (adjust_clone_args): Prototype new function.
cp:
* cp-tree.h (adjust_clone_args): Prototype new function.
* class.c (adjust_clone_args): New function.
* decl.c (start_function): Call it for in charge ctors.
testsuite:
* g++.old-deja/g++.other/defarg9.C: New test.
sparc.md (movsf_no_f_insn): Add more alternatives common to other movsf patterns.
* config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
common to other movsf patterns. Move up so that in future
people who change the other patterns will change it too.
(movsf_lo_sum): Allow even for soft-float; add appropriate
constraints.
(movsf_high): Likewise.
(movsf_high+1): Allow even for soft-float.
Jeffrey A Law [Thu, 26 Apr 2001 20:06:25 +0000 (20:06 +0000)]
initp1.C: Moved here from g++.old-deja/g++.ext.
* g++.dg/special/initp1.C: Moved here from g++.old-deja/g++.ext.
Tweak slightly to work with g++.dg framework.
* g++.dg/special/ecos.exp: Run initp1.C test.
* g++.old-deja/g++.ext/initp1.C: Moved to g++.dg/special.
Per Bothner [Thu, 26 Apr 2001 18:32:22 +0000 (11:32 -0700)]
jcf-write.c (generate_bytecode_insns case SWITCH_EXPR): Fix thinko: If a single case, use if_icmpeq, not ifeq.
* jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
Fix thinko: If a single case, use if_icmpeq, not ifeq.
* constants.c (find_methodref_with_class_index): New function.
(find_methodref_index): Use find_methodref_with_class_index.
* java-tree.h (find_methodref_with_class_index): New declaration.
* jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
DECL_CONTEXT, instead use new find_methodref_with_class_index function.
If context changed from interface to class, don't use invokeinterface.
Per Bothner [Thu, 26 Apr 2001 18:11:02 +0000 (11:11 -0700)]
verify.c (verify_jvm_instructions): For field instructions, check that field index is valid.
* verify.c (verify_jvm_instructions): For field instructions,
check that field index is valid. For invoke instructions, check that
method index is valid.
Jeffrey A Law [Thu, 26 Apr 2001 17:13:04 +0000 (17:13 +0000)]
instantiate2.C: XFAIL for HPUX too since its linker doesn't give line numbers either.
* g++.old-deja/g++.ext/instantiate2.C: XFAIL for HPUX too since
its linker doesn't give line numbers either.
* g++.old-deja/g++.ext/instantiate3.C: Similarly.
cp:
* mangle.c (write_chars): New macro.
(hwint_to_ascii): New function
(write_number): Use it.
(write_integer_cst): Deal with really big numbers.
testsuite:
* g++.old-deja/g++.pt/mangle2.C: New test.
re PR libgcj/2237 (serialization doesn't throw exception on failure)
Fix PR libgcj/2237:
* java/io/ObjectStreamClass.java (setClass): Calculate
serialVersionUID for local class and compare it against the UID
from the Object Stream. Throw InvalidClassException upon mismatch.
(setUID): Renamed to...
(getClassUID): this. Return the calculated class UID rather than
setting uid field directly.
(getDefinedSUID): Removed.
* java/io/ObjectInputStream.java (resolveClass): Use the
three-argument Class.forName().
* java/io/InvalidClassException (toString): Don't include classname in
result if it is null.
* decl.c (init_decl_processing): Add new class "protectionDomain"
field.
* class.c (make_class_data): Set initial value for "protectionDomain".
libjava:
2001-04-25 Bryce McKinlay <bryce@albatross.co.nz>
java.security merge and ClassLoader compliance fixes.
* java/lang/Class.h (Class): Include ProtectionDomain.h.
New protectionDomain field.
(forName): Add initialize parameter. Fixes declaration to comply with
JDK spec.
* java/lang/natClass.cc (forName): Correct declaration of the three-arg
variant. Honour "initialize" flag.
(getProtectionDomain0): New method.
* java/lang/Class.java: Fix forName() declaration.
(getPackage): New method based on Classpath implementation.
(getProtectionDomain0): New native method decl.
(getProtectionDomain): New method.
* java/lang/ClassLoader.java (getParent): Now final.
(definedPackages): New field.
(getPackage): New.
(defineClass): New variant with protectionDomain argument.
(definePackage): New.
(getPackages): New.
(findSystemClass): Now final.
(getSystemResourceAsStream): Remove redundant "final" modifier.
(getSystemResource): Remove redundant "final" modifier.
(getResources): Now final.
(protectionDomainPermission): New static field.
(unknownProtectionDomain): Ditto.
(defaultProtectionDomain): Ditto.
(getSystemClassLoader): Now non-native.
* java/util/ResourceBundle.java (tryGetSomeBundle): Use the correct
arguments for Class.forName().
* java/lang/Package.java: New file.
* gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): Removed.
(instance): Static initialize singleton.
(findClass): Override this, not findSystemClass.
* java/lang/natClassLoader.cc (defineClass0): Set class's
protectionDomain field as specified.
(getSystemClassLoader): Removed.
(findClass): Renamed from findSystemClass. Call the interpreter via
URLClassLoader.findClass if loading class via dlopen fails.
Jakub Jelinek [Wed, 25 Apr 2001 09:51:25 +0000 (11:51 +0200)]
i386.c (ix86_expand_int_movcc): If overlap between out and comparison sequence has been detected...
* config/i386/i386.c (ix86_expand_int_movcc): If overlap between
out and comparison sequence has been detected, put result into
proper temporary pseudo.
Jason Merrill [Wed, 25 Apr 2001 00:23:10 +0000 (20:23 -0400)]
except.c (reachable_handlers): Step out one level from a RESX.
* except.c (reachable_handlers): Step out one level from a RESX.
* except.c (struct eh_region): Rename 'last' to 'resume'.
(mark_eh_region, duplicate_eh_region_1): Adjust.
(expand_eh_region_end_cleanup): Remember the jump, not the barrier.
(build_post_landing_pads): Likewise.
(expand_end_catch, expand_eh_region_end_allowed): Don't set it.
(expand_eh_region_end_must_not_throw): Likewise.
(connect_post_landing_pads): Thread (only) regions with non-deleted
resume insns.
* except.c (expand_eh_region_end_cleanup): Save the EH return data
registers around the cleanup.
(get_exception_filter): New fn.
(finish_eh_generation): Use it.
* cp/optimize.c: Include hashtab.h.
(struct inline_data): Add tree_pruner.
(expand_call_inline, expand_calls_inline): Use it when calling
walk_tree.
(optimize_function): Initialize and free tree_pruner.
Benjamin Kosnik [Mon, 23 Apr 2001 19:50:00 +0000 (19:50 +0000)]
acinclude.m4 (CXX): Set to CXX so that in-directory re-configures find the build compiler.
2001-04-23 Benjamin Kosnik <bkoz@fillmore.constant.com>
* acinclude.m4 (CXX): Set to CXX so that in-directory
re-configures find the build compiler.
(GLIBCPP_ENABLE_C99): Do all tests with 0.0, not 0. Fixes
libstdc++/2609.
* aclocal.m4: Regenerate.
* configure: Regenerate.