Правило 16.3 MISRA C:2012

Безусловный оператор завершения должен отключить каждый пункт переключателя

Описание

Управляйте определением

Безусловный оператор завершения должен отключить каждый пункт переключателя

Объяснение

Пункт переключателя является случаем, содержащим по крайней мере один оператор. Две последовательных метки без прошедшего оператора совместимы с MISRA®.

Если вам не удается закончить ваши пункты переключателя оператором завершения, то поток управления “падает” в следующий оператор. Этот следующий оператор может быть другим пунктом переключателя или концом переключателя. Это поведение является иногда намеренным, но чаще это - ошибка. Если вы добавляете дополнительные случаи позже, неотключенный пункт переключателя может вызвать проблемы.

Реализация Polyspace

Polyspace® повышает предупреждение для каждого несовместимого пункта case.

Обменивайтесь сообщениями в отчете

Безусловный оператор завершения должен отключить каждый пункт переключателя.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Проверяйте информацию

Группа: операторы switch
Категория: необходимый
Категория AGC: консультация
Язык: C90, C99