我從PVS Studio收到以下錯誤 V669'fetch_mask'參數是非常量參考。分析器無法確定該參數被修改的位置。該函數可能包含錯誤。分析器無法確定位置
這是該行:
XXH64_state_t* hash_state, uint32_t& fetch_mask
我盤算錯誤是&不fetch_mask的一部分,我固定它想:
XXH64_state_t* hash_state, uint32_t &fetch_mask
錯誤消失。但是,travis.cl測試說我需要重新格式化並失敗。
我覺得發現問題原碼。
void TextureCache::HashTextureBindings(
XXH64_state_t* hash_state, uint32_t& fetch_mask,
const std::vector<Shader::TextureBinding>& bindings) {
for (auto& binding : bindings) {
uint32_t fetch_bit = 1 << binding.fetch_constant;
if (fetch_mask & fetch_bit) {
void HashTextureBindings(XXH64_state_t* hash_state, uint32_t& fetch_mask,
const std::vector<Shader::TextureBinding>& bindings);
我刪除了&,因爲我認爲這是應該uint32_t的,而不是uint32_t的fetch_mask & fetch_mask
此代碼出現在什麼上下文中?這似乎很奇怪。 – tadman
我認爲找到了解決方案,我用uint32_t fetch_mask刪除了uint32_t&fetch_mask。我現在正在編譯,看看是否能解決它。 –
錯誤消失了,所以我猜這就是問題了。我猜程序員犯了一個錯誤 –