Copy-Paste
V561 It’s probably better to assign value to ‘maybe_null’ variable than to declare it anew. Previous declaration: graphKit.cpp, line 2170. graphKit.cpp 2175
Node* GraphKit::record_profiled_receiver_for_speculation(Node* n) { .... ciKlass* exact_kls = profile_has_unique_klass(); bool maybe_null = true; if (java_bc() == Bytecodes::_checkcast || java_bc() == Bytecodes::_instanceof || java_bc() == Bytecodes::_aastore) { ciProfileData* data = method()->method_data()->bci_to_data(bci()); bool maybe_null = data == NULL ? true : data->as_BitData()->null_seen(); } return record_profile_for_speculation(n, exact_kls, maybe_null); return n; }
A variable bool maybe_null = true; is declared before the if block. Then, when the code in the if clock is executed, a variable with the same name is declared. After the block is exited, the value of this variable will be lost, and the function call, using this variable, will always be true. It’s good, if the variable was duplicated for the sake of debugging. Otherwise, this code is executed incorrectly and requires modification:
maybe_null = data == NULL ? true : data->as_BitData()->null_seen();
Please click here to see more bugs from this project.