verify.cc (class _Jv_BytecodeVerifier): Don't check for abstract classes or interfaces here...

2005-07-06  Colin Walters  <walters@verbum.org>

	* verify.cc (class _Jv_BytecodeVerifier) <op_new>: Don't
	check for abstract classes or interfaces here; JVM spec
	says it should throw an exception, so we'll do so later.
	* interpret.cc (run): Throw an InstantiationException for
	abstract classes and interfaces.

From-SVN: r101788
This commit is contained in:
Colin Walters
2005-07-08 19:13:30 +00:00
committed by Tom Tromey
parent 1ff54bfbdb
commit 3ffa3729c0
3 changed files with 15 additions and 2 deletions
+2 -2
View File
@@ -2926,8 +2926,8 @@ private:
case op_new:
{
type t = check_class_constant (get_ushort ());
if (t.isarray () || t.isinterface (this) || t.isabstract (this))
verify_fail ("type is array, interface, or abstract");
if (t.isarray ())
verify_fail ("type is array");
t.set_uninitialized (start_PC, this);
push_type (t);
}