PetscFunctionReturn#
Last executable line of each PETSc function used for error handling. Replaces return()
.
Synopsis#
#include <petscerror.h>
void PetscFunctionReturn(...)
Not Collective; No Fortran Support
Notes#
This routine is a macro, so while it does not “return” anything itself, it does return from the function in the literal sense.
Usually the return value is the integer literal 0
(for example in any function returning
PetscErrorCode
), however it is possible to return any arbitrary type. The arguments of
this macro are placed before the return
statement as-is.
Any routine which returns via PetscFunctionReturn()
must begin with a corresponding
PetscFunctionBegin
.
For routines which return void
use PetscFunctionReturnVoid()
instead.
Example Usage#
PetscErrorCode foo(int *x)
{
PetscFunctionBegin; // don't forget the begin!
*x = 10;
PetscFunctionReturn(PETSC_SUCCESS);
}
May return any arbitrary type:
struct Foo
{
int x;
};
struct Foo make_foo(int value)
{
struct Foo f;
PetscFunctionBegin;
f.x = value;
PetscFunctionReturn(f);
}
See Also#
PetscFunctionBegin
, PetscFunctionBeginUser
, PetscFunctionReturnVoid()
,
PetscStackPopNoCheck()
Level#
beginner
Location#
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages