다음을 통해 공유


컴파일러 오류 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
}