Edit

Share via


Compiler Error C3012

'intrinsic' : intrinsic function not allowed directly within a parallel region

A compiler intrinsic function is not allowed in an omp parallel region. To fix this issue, move intrinsics out of the region, or replace them with non-intrinsic equivalents.

Example

The following sample generates C3012, and shows one way to fix it:

// C3012.cpp
// compile with: /openmp
#ifdef __cplusplus
extern "C" {
#endif
void* _ReturnAddress();
#ifdef __cplusplus
}
#endif

int main()
{
   #pragma omp parallel
   {
      _ReturnAddress();   // C3012
   }
   _ReturnAddress();      // OK
}