Comments 3
Немного забавно читать данный отчёт, который содержит весьма небольшое количество не самых серъёзных ошибок для такого уровня проекта. Это говорит о высоком уровне разработчиков RPCS3. В данном проекте тонны сложнейшего низкоуровнего кода на векторных интринсиках, lock-free код, vulkan, сложная синхронизация структурно различных модулей. Достаточно вспомнить, что архитектура Cell процессора от IBM кардинально отличается от x86. Да, это ошибки конечно стоит найти и исправить. И это не значит, что надо отказываться от статических анализаторов. Но на общем фоне сложности проекта, описанные ошибки анализаторв выглядят предлождением протереть лобовое и прочие стёкла автомобиля от пыли. Но в проекте наверняка есть реально сложные ошибки, которые никаким самым современным статическим анализатором не найти.
Определение пользовательской функции swap – частый случай такой ошибки.
Интересно, а что делать в случае std::hash? Ведь для этого нельзя написать using, когда используешь std::unordered_map, ведь это определение находится в типах, а не реализации. При этом хочется иметь именно обобщенное написание кода.
Проверяем эмулятор RPCS3 с помощью PVS-Studio