К сожалению, gcc не имеет возможности отключить предупреждения для определенных строк. В любом случае, если вы это делаете, вам просто нужно переименовать информационный параметр вашего конструктора в my_info, и тень исчезнет.
Лучший совет, который я могу вам дать, - поработать над удалением всех этих предупреждений, даже если вы не заботитесь о них. В общем случае лучше , чтобы не использовать имена параметров, которые скрывают функции-члены.
Это подход, который мы использовали для включения новых предупреждений и введения других статических контролеров. На мой взгляд, боль стоит усиления в целом.
В некоторых случаях мы могли запустить скрипт над кодом, чтобы внести изменения для нас. Я не уверен, насколько это легко. В качестве альтернативы, хороший редактор (такой как emacs или VIM) должен помочь вам сделать этот тип «механического» изменения полуавтоматическим и довольно быстрым, если вы можете хорошо управлять редактором!
Еще один действительно хакерский вариант - создать список известных "нормальных" исключений и извлечь их из вывода компилятора. Вы можете создать оболочку для gcc, которая будет просто извлекать предупреждения, которые вы не хотите видеть. Я не рекомендую это, хотя, вероятно, будет легче исправить вашу кодовую базу!