Учитывая следующий код:Есть ли какой-либо компилятор или опция для запуска предупреждения для беспроблемного и ошибочного оператора switch?
bool doGoodThing;
switch (some_variable)
{
case 1:
case 2:
doGoodThing = true;
default:
doGoodThing = false;
}
Последние gcc
версия достаточно умны, чтобы обнаружить, когда переменные быть назначены, но до сих пор не используется, и так далее. Есть ли какой-либо компилятор или флаг, который может вызвать предупреждение о том, что весь коммутатор не имеет никакого смысла для такого кода?
ОБНОВЛЕНИЕ: Вопрос не о doGoodThing
переменной. Речь идет о глупом заявлении switch
, который не имеет большого смысла.
ОБНОВЛЕНИЕ 2: Прохождение голосования «dupe», прежде чем вы пометите его как дубликат, - еще раз прочитайте вопрос. Речь идет не о предупреждении отсутствующего заявления «break» после «case». Это о мертвом коде, логических ошибках, статическом семантическом анализе кода компилятором. Мне не нужно предупреждение, если «перерыв» не существует.
Этот фрагмент имеет для меня смысл. – BlackBear
http://stackoverflow.com/questions/7703358/how-can-i-tell-gcc-to-warn-or-fail-on-switch-case-statements-without-a-break – cnicutar
В каком смысле это doesn Не имеет смысла? Вы хотите, чтобы компилятор проверял семантическое значение вашего кода? – Nawaz