re PR java/20056 ('verification failed: incompatible type on stack' with --indirect-dispatch)

PR java/20056:
	* verify.cc (type::equals): Fixed test.
	* testsuite/libjava.lang/PR20056.out: New file.
	* testsuite/libjava.lang/PR20056.java: New file.

From-SVN: r95266
This commit is contained in:
Tom Tromey 2005-02-19 03:57:21 +00:00 committed by Tom Tromey
parent e863ccf328
commit b55cb4a133
4 changed files with 25 additions and 4 deletions

View file

@ -1,3 +1,10 @@
2005-02-18 Tom Tromey <tromey@redhat.com>
PR java/20056:
* verify.cc (type::equals): Fixed test.
* testsuite/libjava.lang/PR20056.out: New file.
* testsuite/libjava.lang/PR20056.java: New file.
2005-02-18 Bryce McKinlay <mckinlay@redhat.com>
* java/util/LinkedHashMap (addEntry): Call remove() with key argument,

View file

@ -0,0 +1,13 @@
public class PR20056 {
int x;
PR20056(int x) {}
PR20056(PR20056 f) {
// The verifier rejected the generated code in this case.
this(f.x = 0);
}
public static void main(String[] args)
{
System.out.println("maude");
}
}

View file

@ -0,0 +1 @@
maude

View file

@ -754,10 +754,10 @@ private:
bool equals (const type &other, _Jv_BytecodeVerifier *vfy)
{
// Only works for reference types.
if (key != reference_type
|| key != uninitialized_reference_type
|| other.key != reference_type
|| other.key != uninitialized_reference_type)
if ((key != reference_type
&& key != uninitialized_reference_type)
|| (other.key != reference_type
&& other.key != uninitialized_reference_type))
return false;
// Only for single-valued types.
if (klass->ref_next || other.klass->ref_next)