Bug in documentation for SETERRQ
    John R. Wicks 
    jwicks at cs.brown.edu
       
    Fri Aug 10 05:40:46 CDT 2007
    
    
  
SETERRQ is documented to not return a value:
Synopsis:
void SETERRQ(PetscErrorCode errorcode,char *message) 
but it is defined in petscerror.h in terms of a return statement:
#define SETERRQ(n,s)              {return
PetscError(__LINE__,__FUNCT__,__FILE__,__SDIR__,n,1,s);}
which causes a compilation error when it is called in a C++
constructor/destructor, for example. 
A truly void error check, such as:
#define ckPetscErr(n, s) {if(0!=n)
PetscError(__LINE__,__FUNCT__,__FILE__,__SDIR__,n,1,s);} 
or:
#define ckPetscErr(stmnt, s) {PetscErrorCode ierr=stmnt;if(0!=ierr)
PetscError(__LINE__,__FUNCT__,__FILE__,__SDIR__,ierr,1,s);}
would be helpful.
    
    
More information about the petsc-users
mailing list