2015-07-22 4 views
1

Мне нужно уметь подавлять предупреждения линта на определенных строках кода C, и я хотел бы сделать это с помощью встроенных директив. Это для очень большого количества устаревшего кода, который я переношу на 64-разрядный, и я бы скорее поставил директивы в коде, чем в Makefile, который запускает lint, так как последний довольно неясен.Как подавить предупреждение о включении Solaris в C в коде

Проблема в том, что документация Solaris lint указывает, как это сделать только для нескольких типов предупреждений (насколько я могу судить).

В прошлом использовалась следующая форма, и документация Solaris предполагает, что это все еще разрешено, но, похоже, она не работает. Усложнение проблемы заключается в том, что воска Solaris не дает номера ошибок, а использует идентификаторы, такие как E_CAST_INT_TO_SMALL_INT.

Вот старый способ (и есть много они в коде уже):

/*line -e511*/ 
+0

Вы пробовали '/ * line -eE_CAST_INT_TO_SMALL_INT * /', просто подставляя идентификатор номера ошибки? –

+1

Удивление, если OP _should_ подавляет эти предупреждения. Возможно, напишите пример кода с предупреждением, которое OP хотел бы подавить? – chux

+1

@chux - Согласовано. При переносе старого кода на 64-разрядный, я бы подумал, что предупреждения lint, такие как 'E_CAST_INT_TO_SMALL_INT', - это именно те проблемы, которые ** должны быть исправлены **, особенно если они включают в себя' size_t' и/или код указателя, написанный кем-то который «знает, что size_t является неподписанным int». Это звучит слишком вероятно. –

ответ

3

Described in Lint Directives Section at this link

Есть два встроенные способы подавления предупреждений вкусненькое для одной строки кода - старый способ и рекомендуемый новый способ.

старый способ заключается в использовании LINTED комментарий: /*LINTED*/

Новый способ заключается в использовании пуха макрос: NOTE(LINTED (msg))

Новый способ также требует в том числе note.h.

Смежные вопросы