У меня есть проект, который отлично работает под gcc 4.8.4. Я пробовал собирать с помощью gcc 7 и заметил много предупреждений -Wimplicit-fallthrough=. Насколько я знаю, это действительно было добавлено в gcc версии 7. Сейчас я использую -Wno-implicit-fallthrough при сборке, чтобы подавить эти предупреждения. Возвращаясь к более старой версии gcc, сохраняя флаг компилятора -Wno-implicit-fallthrough, приводит ли нет к какой-либо ошибке, хотя я не верю, что gcc 4 распознает эту опцию. Почему? Разрешено ли не распознавать конкретно опции -Wno-?





Из man gcc:
When an unrecognized warning option is requested (e.g., -Wunknown-warning), GCC emits a diagnostic stating that the option is not recognized. However, if the -Wno- form is used, the behavior is slightly different: no diagnostic is produced for -Wno-unknown-warning unless other diagnostics are being produced. This allows the use of new -Wno- options with old compilers, but if something goes wrong, the compiler warns that an unrecognized option is present.
Подводя итог: если все идет хорошо, неизвестные переключатели -Wno-* игнорируются для сохранения совместимости.