PVS Studio アナライザーでコードをスキャンしましたが、このエラーの理由と修正方法について混乱しています。
V550 奇妙な正確な比較: * dest == value. fabs(A - B) < Epsilon.
bool PipelineCache::SetShadowRegister(float* dest, uint32_t register_name) {
float value = register_file_->values[register_name].f32;
if (*dest == value) {
return false;
}
*dest = value;
return true;
}
私は次のようにコードを変更すると推測しています:
bool PipelineCache::SetShadowRegister(float* dest, float* epsilon uint32_t register_name) {
float value = register_file_->values[register_name].f32;
return fabs(dest - value) < epsilon;
}