1

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;
}
4

1 に答える 1