C 언어에서 정의되지 않은 동작을 처리하는 GCC와 Clang
C 언어의 정의되지 않은 동작(UB)은 실행 중 어떤 일이 발생해야 하는지 언어 사양이 정의하지 않은 코드를 말합니다. GCC는 UB를 감지하면 프로그램을 종료시키는 반면, Clang은 '독(poison)' 값을 사용하여 계속 컴파일하고 실행합니다. 이러한 차이는 컴파일러가 UB에 대해 어떻게 최적화하고 처리하는지에 대한 다양한 접근 방식을 보여줍니다.