Согласно документации -Wstrict-overflow, уровень 3:
Также предупреждайте о других случаях, когда сравнение упрощенный. Например: x + 1 > 1 упрощается до x > 0.
Показанный ниже MWE выдает следующее предупреждение на уровне 3 и выше, но не ниже, И, если для оптимизации установлено значение -O2 и выше, но не ниже. Это демонстрируется в версиях g++ 9.3.0 и 10.2.
a.cpp: В функции 'void std::push_heap(_RAIter, _RAIter) [с _RAIter = long unsigned int*]':
a.cpp:8:1: предупреждение: предполагается, что при изменении X +- C1 cmp C2 на X cmp C2 --+ C1 [-Wstrict-overflow]
Согласно документации -Wstrict-overflow, уровень 3:
Также предупреждайте[s] о других случаях, когда сравнение упрощенный. Например: x + 1 > 1 упрощается до x > 0.
Показанный ниже MWE выдает следующее предупреждение на уровне 3 и выше, но не ниже, [b]И[/b], если для оптимизации установлено значение -O2 и выше, но не ниже. Это демонстрируется в версиях g++ 9.3.0 и 10.2.
a.cpp: В функции 'void std::push_heap(_RAIter, _RAIter) [с _RAIter = long unsigned int*]': a.cpp:8:1: предупреждение: предполагается, что при изменении X +- C1 cmp C2 на X cmp C2 --+ C1 [-Wstrict-overflow]
Демонстрация в реальном времени [b]MWE[/b] [code]#include