Erro do compilador C3012
'intrinsic': função intrínseca não permitida diretamente dentro de uma região parallel
Uma função intrínseca do compilador não é permitida em uma região omp parallel
. Para corrigir esse problema, mova intrínsecos para fora da região ou substitua-os por equivalentes não intrínsecos.
Exemplo
A amostra a seguir gera C3012 e mostra uma maneira de corrigi-lo:
// C3012.cpp
// compile with: /openmp
#ifdef __cplusplus
extern "C" {
#endif
void* _ReturnAddress();
#ifdef __cplusplus
}
#endif
int main()
{
#pragma omp parallel
{
_ReturnAddress(); // C3012
}
_ReturnAddress(); // OK
}