6.36 Атрибуты операторов
GCC позволяет задавать атрибуты для операторов присваивания. Подробности о синтаксисе атрибутов см. в разделе Синтаксис атрибутов. Другие атрибуты доступны для функций (см. Атрибуты функций), переменных (см. Атрибуты переменных), меток (см. Атрибуты меток), перечислителей (см. Атрибуты перечислителей) и для типов (см. Атрибуты типов).
В этом примере используется атрибут оператора fallthrough для того, чтобы указать, что предупреждение -Wimplicit-fallthrough не должно выводиться:
switch (cond)
{
case 1:
bar (1);
__attribute__((fallthrough));
case 2:
…
}
fallthrough-
Атрибут
fallthrough, применяемый к оператору присваивания, служит указанием на то, что переход к следующему метке в операторе switch является преднамеренным, и предупреждение -Wimplicit-fallthrough не должно генерироваться. Атрибут fallthrough может быть указан не более одного раза в списке атрибутов и не может быть смешан с другими атрибутами. Он может быть использован только в операторе switch (в противном случае компилятор выдаст ошибку), после предшествующего оператора и перед логически последующей меткой case или пользовательской меткой.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/Statement-Attributes.html