Si no está roto, no lo arregles
Su jefe suena correcto al decir esto, sin embargo, lo más importante factor es salvaguardar las entradas, salidas y desbordamientos de búfer. La falta de esos es invariablemente el eslabón más débil de la cadena desde ese punto de vista, independientemente del compilador utilizado.
Sin embargo, si la base del código es antigua, y se trabajó para mitigar las debilidades del K&R C utilizado, como la falta de seguridad de tipos, fgets inseguros, etc., sopese la pregunta " ¿Actualizaría el compilador a un C99 más moderno? / ¿Los estándares C11 lo rompen todo? "
Siempre que haya un camino claro para migrar a los estándares C más nuevos, lo que podría inducir efectos secundarios, lo mejor sería intentar una bifurcación del código base anterior, evaluarlo y realizar verificaciones de tipo adicionales, verificaciones de cordura y determinar si se actualiza a el compilador más nuevo tiene algún efecto en los conjuntos de datos de entrada / salida.
Luego puede mostrárselo a su jefe, " Aquí está el código base actualizado, refactorizado, más en línea con los estándares C99 / C11 aceptados por la industria ... ".
Esa es la apuesta en la que habría que sopesar, con mucho cuidado , la resistencia al cambio podría mostrarse allí en ese entorno y podría negarse a tocar las cosas más nuevas.
EDITAR
Me senté unos minutos, me di cuenta de esto, el código generado por K&R podría estar ejecutándose en una plataforma de 16 bits, lo más probable es que la actualización a un compilador más moderno podría romper la base del código, estoy pensando en términos de arquitectura, se generaría un código de 32 bits , esto podría tener efectos secundarios divertidos en las estructuras utilizadas para los conjuntos de datos de entrada / salida, que es otro gran factor que se debe sopesar cuidadosamente.
Además, dado que OP ha mencionado el uso de Visual Studio 2008 para construir la base de código, el uso de gcc podría inducir la incorporación al entorno de MinGW o Cygwin, lo que podría tener un cambio de impacto en el entorno, a menos que el objetivo sea Linux, entonces sería Vale la pena intentarlo, es posible que tenga que incluir cambios adicionales en el compilador para minimizar el ruido en la base del código K&R antiguo, la otra cosa importante es realizar muchas pruebas para asegurarse de que no se rompa ninguna funcionalidad, puede resultar un ejercicio doloroso.