우리는 아무도 관심을 갖지 않는 생산 시스템을 가지고 있으며 이러한 기계는 GCC 3 또는 GCC 2와 같은 고대 버전의 GCC를 실행합니다.
그리고 경영진이 더 최근으로 업그레이드하도록 설득 할 수는 없습니다. "파산하지 않으면 해결하지 마십시오"라고 말합니다.
우리는 매우 오래된 코드 기반 (80 년대로 작성 됨)을 유지하므로이 C89 코드는 이러한 컴파일러에서 잘 컴파일됩니다.
그러나 나는이 오래된 것들을 사용하는 것이 좋은 생각인지 확실하지 않습니다.
내 질문은 :
이전 C 컴파일러를 사용하면 컴파일 된 프로그램의 보안이 손상 될 수 있습니까?
최신 정보:
동일한 코드가 Windows 대상 용 Visual Studio 2008 대상에 의해 작성되었으며 MSVC는 아직 C99 또는 C11을 지원하지 않으며 (최신 MSVC가 지원하는지 알 수 없음) 최신 GCC를 사용하여 Linux 상자에서 작성할 수 있습니다. 따라서 새로운 GCC를 사용한다면 이전과 마찬가지로 잘 구축 될 것입니다.
-O3 -Wall -Wextra -fsanitize=undefined
현대 gcc와 clang으로 식별 된 문제를 해결 하면 도움이 될 것입니다.