Если он не сломался, не чините его
Ваш босс кажется правым, говоря, что это более важный фактор - защита входов, выходов и переполнения буфера. Их отсутствие - неизменно самое слабое звено в цепи с этой точки зрения, независимо от используемого компилятора.
Однако, если кодовая база устарела и была проведена работа по смягчению слабых мест используемого K&R C, таких как отсутствие безопасности типов, небезопасные fgets и т. Д., Взвесите вопрос « Будет ли обновлен компилятор до более современного C99? Стандарты / C11 ломают все? "
При условии, что существует четкий путь для перехода на новые стандарты C, который может вызвать побочные эффекты, может быть лучше попытаться выполнить форк старой кодовой базы, оценить ее и добавить дополнительные проверки типов, проверки работоспособности и определить, выполняется ли обновление до более новый компилятор имеет какое-либо влияние на наборы данных ввода / вывода.
Затем вы можете показать своему боссу: « Вот обновленная база кода, отремонтированная, в большей степени в соответствии с принятыми в отрасли стандартами C99 / C11 ... ».
Это риск, который нужно взвесить очень осторожно , сопротивление изменениям может проявиться в этой среде и может отказаться прикасаться к новым материалам.
РЕДАКТИРОВАТЬ
Просто откинулся на несколько минут, понял это, код, сгенерированный K&R, может работать на 16-битной платформе, есть вероятность, что обновление до более современного компилятора может действительно сломать базу кода, я думаю с точки зрения архитектуры, будет сгенерирован 32-битный код , это может иметь смешные побочные эффекты на структурах , используемых для ввода / вывода массивов данных, что является еще одним огромным фактором взвешивать тщательно.
Кроме того, поскольку OP упомянул об использовании Visual Studio 2008 для создания базы кода, использование gcc может вызвать внесение в среду либо MinGW, либо Cygwin, что может повлиять на изменение среды, если только цель не предназначена для Linux, тогда это будет стоит попробовать, возможно, придется включить дополнительные переключатели в компилятор, чтобы минимизировать шум в старой кодовой базе K&R, другая важная вещь - провести большое тестирование, чтобы убедиться, что ни одна функциональность не нарушена, может оказаться болезненным упражнением.