Erreur du compilateur C3029
'symbol' : ne peut figurer qu’une seule fois dans les clauses de partage de données d’une directive OpenMP
Un symbole a été utilisé plusieurs fois dans une ou plusieurs clauses d’une directive. Le symbole ne peut être utilisé qu’une seule fois dans la directive.
L’exemple suivant génère l’erreur C3029 :
// C3029.cpp
// compile with: /openmp /link vcomps.lib
#include "omp.h"
int g_i;
int main() {
int i, x;
#pragma omp parallel reduction(+ : x, x) // C3029
;
#pragma omp parallel reduction(+ : x) // OK
;
#pragma omp parallel private(x) reduction(+ : x) // C3029
;
#pragma omp parallel reduction(+ : x) // OK
;
}