diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-10 01:18:30 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-10 01:18:30 +0000 |
commit | 91b931f99911a9111788d681600e0b9efa7f9c9e (patch) | |
tree | 45cc1d1d0e9f8a64a919f48430d377afbd8b126c /libjava/resolve.cc | |
parent | 460ee42fcdab0bf053c4365bb2258d119c7d9de5 (diff) | |
download | ppe42-gcc-91b931f99911a9111788d681600e0b9efa7f9c9e.tar.gz ppe42-gcc-91b931f99911a9111788d681600e0b9efa7f9c9e.zip |
* resolve.cc (_Jv_PrepareClass): Verify method here...
* defineclass.cc (handleMethodsEnd): ... not here.
* verify.cc (_Jv_BytecodeVerifier::initialize_stack): New method.
(_Jv_BytecodeVerifier::verify_instructions_0) [op_return]: Ensure
there are no uninitialized objects.
(_Jv_BytecodeVerifier::state::this_type): New field.
(_Jv_BytecodeVerifier::state::state): Initialize this_type.
(_Jv_BytecodeVerifier::state::copy): Copy this_type.
(_Jv_BytecodeVerifier::state::merge): Merge this_type.
(_Jv_BytecodeVerifier::state::check_no_uninitialized_objects):
Handle this_type.
(_Jv_BytecodeVerifier::state::check_this_initialized): New
method.
(_Jv_BytecodeVerifier::state::set_initialized): Handle this_type.
(_Jv_BytecodeVerifier::state::set_this_type): New method.
(_Jv_BytecodeVerifier::verify_instructions_0) [op_putfield]: Allow
assignment to fields of `this' before another initializer is run.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47826 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r-- | libjava/resolve.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc index 2b25b578b85..ba397c9b119 100644 --- a/libjava/resolve.cc +++ b/libjava/resolve.cc @@ -578,7 +578,7 @@ _Jv_PrepareClass(jclass klass) // set the instance size for the class clz->size_in_bytes = instance_size; - + // allocate static memory if (static_size != 0) { @@ -628,6 +628,8 @@ _Jv_PrepareClass(jclass klass) else if (imeth != 0) // it could be abstract { _Jv_InterpMethod *im = reinterpret_cast<_Jv_InterpMethod *> (imeth); + // FIXME: enable once verifier is more fully tested. + // _Jv_VerifyMethod (im); clz->methods[i].ncode = im->ncode (); } } |