Erreur du compilateur C3012
'intrinsèque' : fonction intrinsèque non autorisée directement dans une région parallèle
Une fonction intrinsèque du compilateur n’est pas autorisée dans une région omp parallel
. Pour résoudre ce problème, déplacez les intrinsèques hors de la région ou remplacez-les par des équivalents non intrinsèques.
Exemple
L’exemple suivant génère l’erreur C3012 et montre un moyen de le corriger :
// C3012.cpp
// compile with: /openmp
#ifdef __cplusplus
extern "C" {
#endif
void* _ReturnAddress();
#ifdef __cplusplus
}
#endif
int main()
{
#pragma omp parallel
{
_ReturnAddress(); // C3012
}
_ReturnAddress(); // OK
}