Я думаю, у вас просто слишком жёсткий уровень предупреждений. Сам
пользуюсь GCC. И если включить оптимизации на максимум и включить
все основные предупреждения - то тоже жалуется, что, дескать, чего
условие писал, если результат заранее известен? По факту, у меня условия работают по определениям препроцессора - в зависимости от конфигурации, калибровочных констант и прочего. И в таких местах я, не редко, переписывал обычный код на директивы препроцессора. Ну или в обычные, линейные математические выражения. Если нужно было избавиться от предупреждений.