Hi,

I just discovered that all my calls to MPI are replaced by PETSc #define macros...

I don't really care, but I now have this warning with clang 3.9.0:


/pmi/cmpbib/compilation_BIB_gcc_redhat_squash/COMPILE_AUTO/GIREF/src/commun/Parallele/PABroadcast.icc:324:41: warning: possible misuse of comma operator here [-Wcomma] int lErreurMPI = ((petsc_wait_ct++,petsc_sum_of_waits_ct++,0) || MPI_Wait(&(aIdComm[0]),&lStatus));
                                        ^

/pmi/cmpbib/compilation_BIB_gcc_redhat_squash/COMPILE_AUTO/GIREF/src/commun/Parallele/PABroadcast.icc:324:26: note: cast expression to void to silence warning int lErreurMPI = ((petsc_wait_ct++,petsc_sum_of_waits_ct++,0) || MPI_Wait(&(aIdComm[0]),&lStatus));
                         ^~~~~~~~~~~~~~~
                         static_cast<void>( )

I have many files to modify in my code if I want to silence this warning (with pragmas)...

But before doing so, I have 2 questions:

- Would you consider doing static_cast<void>( ) as suggested by clang to silence the warnings?
- Does PETSc lib really wants to count *my* calls to MPI functions?

I don't have a strong opinion if PETSc should #define or not all MPI calls, but about -Wcomma warnings, I do: I want this warning to be signaled into my code because all the ones I have found where unwanted uses of coma operator... and I want to keep the code clean into the future...

The "offending" macros are all in petsclog.h which is included by petscsys.h.

thanks,

Eric

Reply via email to