8031695: CHA ignores default methods during analysis leading to incorrect code generation

Reviewed-by: jrose, acorn, hseigel, lfoltan
This commit is contained in:
Vladimir Ivanov 2014-01-23 01:23:23 +04:00
parent 0c43978be6
commit 91573b8695
2 changed files with 60 additions and 4 deletions

View file

@ -1223,11 +1223,9 @@ bool Dependencies::is_concrete_method(Method* m) {
// We could also return false if m does not yet appear to be
// executed, if the VM version supports this distinction also.
// Default methods are considered "concrete" as well.
return !m->is_abstract() &&
!InstanceKlass::cast(m->method_holder())->is_interface();
// TODO: investigate whether default methods should be
// considered as "concrete" in this situation. For now they
// are not.
!m->is_overpass(); // error functions aren't concrete
}