Данное диагностическое правило добавлено по просьбе пользователей.
Анализатор обнаружил ситуацию с удалением 'volatile'-квалификатора. Доступ к объекту, объявленному с квалификатором 'volatile', через указатель/ссылку на не-'volatile' тип ведет к неопределенному поведению.
Пример кода, на который анализатор выдаст предупреждение:
int foo(int &value) { while (value) { // do some stuff... } return 0; } int main() { volatile int value = 1; return foo((int &) value); }
Другой пример кода, на который анализатор выдаст предупреждение:
#include <utility> int foo() { int x = 30; volatile int y = 203; using std::swap; swap(x, const_cast<int &>(y)); // <= return x; }