diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-15 19:11:43 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-15 19:11:43 +0000 |
commit | beb3619b397cda4a2bc36d3b926b653fc67627fd (patch) | |
tree | d75a57626d585261ba5d3eae3b74954aa5b37586 /libjava/link.cc | |
parent | c8c2d11079530635a3bc051c8a6ef73dd2190d29 (diff) | |
download | gcc-beb3619b397cda4a2bc36d3b926b653fc67627fd.tar.gz |
gcc/java/:
PR libgcj/21906:
* class.c (make_method_value): Use soft_abstractmethod_node for
abstract method.
* java-tree.h (soft_abstractmethod_node): New define.
(JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
* decl.c (java_init_decl_processing): Initialize
soft_abstractmethod_node.
libjava/:
PR libgcj/21906:
* defineclass.cc (handleMethodsEnd): Set ncode for abstract
methods.
* include/jvm.h (_Jv_ThrowAbstractMethodError): Declare.
* link.cc (_Jv_ThrowAbstractMethodError): Renamed. No longer
static.
(append_partial_itable): Use it.
(set_vtable_entries): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100992 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/link.cc')
-rw-r--r-- | libjava/link.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libjava/link.cc b/libjava/link.cc index 3fe073463f9..e97b31bb78e 100644 --- a/libjava/link.cc +++ b/libjava/link.cc @@ -714,8 +714,8 @@ _Jv_ThrowNoSuchMethodError () } // This is put in empty vtable slots. -static void -_Jv_abstractMethodError (void) +void +_Jv_ThrowAbstractMethodError () { throw new java::lang::AbstractMethodError(); } @@ -767,7 +767,7 @@ _Jv_Linker::append_partial_itable (jclass klass, jclass iface, (_Jv_GetMethodString (klass, meth)); if ((meth->accflags & Modifier::ABSTRACT) != 0) - itable[pos] = (void *) &_Jv_abstractMethodError; + itable[pos] = (void *) &_Jv_ThrowAbstractMethodError; else itable[pos] = meth->ncode; } @@ -1228,7 +1228,8 @@ _Jv_Linker::set_vtable_entries (jclass klass, _Jv_VTable *vtable) if ((meth->accflags & Modifier::ABSTRACT)) // FIXME: it might be nice to have a libffi trampoline here, // so we could pass in the method name and other information. - vtable->set_method(meth->index, (void *) &_Jv_abstractMethodError); + vtable->set_method(meth->index, + (void *) &_Jv_ThrowAbstractMethodError); else vtable->set_method(meth->index, meth->ncode); } |