8247502: PhaseStringOpts crashes while optimising effectively dead code
Reviewed-by: kvn, thartmann
This commit is contained in:
parent
be04c8c724
commit
7a6c1a66b2
@ -539,6 +539,15 @@ StringConcat* PhaseStringOpts::build_candidate(CallStaticJavaNode* call) {
|
||||
cnode->method()->signature()->as_symbol() == int_sig)) {
|
||||
sc->add_control(cnode);
|
||||
Node* arg = cnode->in(TypeFunc::Parms + 1);
|
||||
if (arg == NULL || arg->is_top()) {
|
||||
#ifndef PRODUCT
|
||||
if (PrintOptimizeStringConcat) {
|
||||
tty->print("giving up because the call is effectively dead");
|
||||
cnode->jvms()->dump_spec(tty); tty->cr();
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
if (cnode->method()->signature()->as_symbol() == int_sig) {
|
||||
sc->push_int(arg);
|
||||
} else if (cnode->method()->signature()->as_symbol() == char_sig) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user