diff --git a/src/main/gov/nasa/jpf/jvm/bytecode/INVOKESTATIC.java b/src/main/gov/nasa/jpf/jvm/bytecode/INVOKESTATIC.java index 0ff67ae0..35986aae 100644 --- a/src/main/gov/nasa/jpf/jvm/bytecode/INVOKESTATIC.java +++ b/src/main/gov/nasa/jpf/jvm/bytecode/INVOKESTATIC.java @@ -89,6 +89,12 @@ public Instruction execute (ThreadInfo ti) { return ti.createAndThrowException("java.lang.NoSuchMethodException", cname + '.' + mname); } + // Check if the called method is static + if(!callee.isStatic()) { + return ti.createAndThrowException("java.lang.IncompatibleClassChangeError", + "non-static method called as static"); + } + // this can be actually different than (can be a base) ClassInfo ciCallee = callee.getClassInfo();