This is annoying. You need to pass in a compiler flag to turn off the error conditioner for casting a function pointer. It may be -Wnoerror=cast-function-type just google.
Barry > On Jan 10, 2022, at 4:35 PM, Zou, Ling via petsc-users > <[email protected]> wrote: > > Hi All, > > I would appreciate if you could give some advice for setting the > ‘FormFunction’ for the MatFDColoringSetFunction function call. > I follow what is shown in the example: > https://petsc.org/release/src/snes/tutorials/ex14.c.html > <https://petsc.org/release/src/snes/tutorials/ex14.c.html> > > I setup similar code structure like: > PetscErrorCode FormFunction(SNES,Vec,Vec,void*); > Then use it as: > MatFDColoringSetFunction(fdcoloring, > (PetscErrorCode(*)(void))SNESFormFunction, this); > > This works fine on my local MacOS. However, when commit it to a remote repo, > the compiler there gives me the following error (where warnings are treated > as errors): > > src/base/PETScProblemInterface.C:100:67: error: > cast between incompatible function types from > 'PetscErrorCode (*)(SNES, Vec, Vec, void*)' {aka 'int (*)(_p_SNES*, _p_Vec*, > _p_Vec*, void*)'} > to > 'PetscErrorCode (*)()' {aka 'int (*)()'} [-Werror=cast-function-type] > > Any help is appreciated. > > -Ling
