Более мелкомодульное поведение gcc-Wshadow опция

К превосходному списку Joseph Holsten я добавляю xpath сценарий командной строки, который идет с библиотекой Perl XML:: XPath. Отличный способ извлечь информацию из XML-файлов:

 xpath -q -e '/entry[@xml:lang="fr"]' *xml
7
задан pachanga 27 August 2009 в 12:39
поделиться

2 ответа

Для внешних библиотек вы можете попробовать указать их путь включения с помощью -isystem вместо -I , это приведет к тому, что gcc перестанет выводить предупреждения в их большую часть времени.

Когда предупреждение появляется только в нескольких ограниченных случаях, вы можете обойти его с помощью:

#pragma GCC диагностика игнорируется "-Wshadow"

Для остальных случаев рефакторинг код или выполнение трюка grep , упомянутого Питером, кажутся единственными вариантами.

10
ответ дан 6 December 2019 в 19:40
поделиться

К сожалению, в gcc нет способа отключить предупреждения для определенных строк. В любом случае, если вы это делаете, вам следует просто переименовать параметр info вашего конструктора в my_info, и тень исчезнет.

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

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

В некоторых случаях нам удавалось запускать сценарий поверх кода, чтобы внести изменения за нас. Я не уверен, насколько легко это будет. В качестве альтернативы хороший редактор (например, emacs или VIM) должен помочь вам сделать этот тип "механического" изменить полуавтоматически и довольно быстро, если вы умеете хорошо управлять редактором!

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

3
ответ дан 6 December 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: