Мне нужно уметь подавлять предупреждения линта на определенных строках кода C, и я хотел бы сделать это с помощью встроенных директив. Это для очень большого количества устаревшего кода, который я переношу на 64-разрядный, и я бы скорее поставил директивы в коде, чем в Makefile, который запускает lint, так как последний довольно неясен.Как подавить предупреждение о включении Solaris в C в коде
Проблема в том, что документация Solaris lint указывает, как это сделать только для нескольких типов предупреждений (насколько я могу судить).
В прошлом использовалась следующая форма, и документация Solaris предполагает, что это все еще разрешено, но, похоже, она не работает. Усложнение проблемы заключается в том, что воска Solaris не дает номера ошибок, а использует идентификаторы, такие как E_CAST_INT_TO_SMALL_INT.
Вот старый способ (и есть много они в коде уже):
/*line -e511*/
Вы пробовали '/ * line -eE_CAST_INT_TO_SMALL_INT * /', просто подставляя идентификатор номера ошибки? –
Удивление, если OP _should_ подавляет эти предупреждения. Возможно, напишите пример кода с предупреждением, которое OP хотел бы подавить? – chux
@chux - Согласовано. При переносе старого кода на 64-разрядный, я бы подумал, что предупреждения lint, такие как 'E_CAST_INT_TO_SMALL_INT', - это именно те проблемы, которые ** должны быть исправлены **, особенно если они включают в себя' size_t' и/или код указателя, написанный кем-то который «знает, что size_t является неподписанным int». Это звучит слишком вероятно. –