Компилятор Apple LLVM - использовать прагмы, чтобы запретить все предупреждения для части файла? - PullRequest
3 голосов
/ 14 августа 2011

Мне нужно запретить предупреждения для части одного из моих исходных файлов.Это то, что у меня есть.Это не работает.

 #pragma GCC diagnostic push
 #pragma GCC "-w"  // also tried "-Wall"

     // code that generates warnings here

 #pragma GCC diagnostic pop

Ответы [ 2 ]

2 голосов
/ 14 августа 2011

Вы можете отключить отдельные предупреждения, используя формат:

#pragma GCC diagnostic ignored "-Wwarning-to-disable"

За исключением того, что не работает для "-Wall", только для отдельных предупреждений.Я бы порекомендовал отключить только то предупреждение, которое вы получаете, и только в том случае, если оно находится в исходных файлах, которые вы не можете контролировать.Если это в вашем коде, вам следует серьезно подумать над исправлением предупреждений надлежащим образом.

Редактировать: см. Раздел 3.8, Опции для запроса или подавления предупреждений , в GCC документах .

Редактировать 2: Ах, непонять, что это не полный список.Там нет никакой документации, содержащей полный список, но вы всегда можете проверить источник.Обойдя источник clang, он выглядит так: include / clang / Basic / DiagnosticGroups.td перечисляет целую кучу из них.

0 голосов
/ 14 ноября 2012

Если вы используете XCode, вы можете перейти в журнал сборки и развернуть вывод компилятора, и он сообщит вам имя предупреждения для использования в прагме

...