GCC와 Clang, 표준 C++ 미준수: 언어 연결이 타입에 저장되지 않는다

Neither GCC nor Clang are compliant with standard C++

C++ 표준은 언어 연결(language linkage)이 다른 함수 타입은 서로 다른 타입이라고 명시한다. 그러나 GCC와 Clang은 이 정보를 타입에 저장하지 않아, extern "C" 함수 포인터와 일반 함수 포인터를 구분하지 못한다. 이로 인해 표준을 위반하는 코드가 컴파일되거나, 올바른 코드가 컴파일 실패할 수 있다. 저자는 표준이 구현 정의로 바뀌어야 한다고 주장한다.

GCC와 Clang은 타입에 언어 연결 정보를 저장하지 않는다. 따라서 언어 연결이 다른 두 함수는 동일한 타입이 될 수 있다.

이 날의 다른 글

2026-07-19