컴파일러 오류 C3012
'intrinsic': 병렬 영역 내에서 직접 허용되지 않는 내장 함수
컴파일러 내장 함수는 omp parallel
지역에서 사용할 수 없습니다. 이 문제를 해결하려면 지역에서 내장 함수를 이동하거나 내장 함수가 아닌 해당 항목으로 바꿉니다.
예시
다음 샘플에서는 C3012를 생성하고 이를 해결하는 한 가지 방법을 보여 줍니다.
// C3012.cpp
// compile with: /openmp
#ifdef __cplusplus
extern "C" {
#endif
void* _ReturnAddress();
#ifdef __cplusplus
}
#endif
int main()
{
#pragma omp parallel
{
_ReturnAddress(); // C3012
}
_ReturnAddress(); // OK
}