static char help[] = "Demonstrates previous memory leak for XXXRegister()\n\n"; #include #include #include #include #include #include #include static PetscErrorCode TSGLLEAdaptCreate_Dummy(TSGLLEAdapt ts) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode TSGLLECreate_Dummy(TS ts) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode TSAdaptCreate_Dummy(TSAdapt ts) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode TSCreate_Dummy(TS ts) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } #if !defined(PETSC_USE_COMPLEX) static PetscErrorCode CharacteristicCreate_Dummy(Characteristic chr) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } #endif static PetscErrorCode SNESLineSearchCreate_Dummy(SNESLineSearch sneslinesearch) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode SNESCreate_Dummy(SNES snes) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode KSPCreate_Dummy(KSP ksp) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode KSPGuessCreate_Dummy(KSPGuess ksp) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode PCCreate_Dummy(PC pc) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode DMCreate_Dummy(DM dm) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode MatPartitioningCreate_Dummy(MatPartitioning mat) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode MatCreate_Dummy(Mat mat) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode PFCreate_Dummy(PF pf, PetscCtx ctx) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode VecCreate_Dummy(Vec vec) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode ISCreate_Dummy(IS is) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode AOCreate_Dummy(AO ao) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand) { PetscFunctionBeginUser; PetscFunctionReturn(PETSC_SUCCESS); } int main(int argc, char **argv) { PetscReal A[1] = {0.0}, Gamma[1] = {1.0}, b[1] = {1.0}, c[1] = {1.0}, d[1] = {1.0}; PetscFunctionBeginUser; PetscCall(PetscInitialize(&argc, &argv, NULL, help)); /* TaoLineSearchRegister() also has the same memory leak */ /* TaoRegister() also has the same memory leak */ PetscCall(TSGLLEAdaptRegister("dummy", TSGLLEAdaptCreate_Dummy)); PetscCall(TSGLLERegister("dummy", TSGLLECreate_Dummy)); PetscCall(TSRKRegister("dummy", 0, 0, A, 0, 0, 0, 0, 0)); PetscCall(TSGLEERegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); PetscCall(TSARKIMEXRegister("dummy", 0, 1, A, b, c, A, b, c, 0, 0, 0, 0, 0)); PetscCall(TSRosWRegister("dummy", 0, 1, A, Gamma, b, 0, 0, 0)); PetscCall(TSBasicSymplecticRegister("dummy", 0, 0, c, d)); PetscCall(TSAdaptRegister("dummy", TSAdaptCreate_Dummy)); PetscCall(TSRegister("dummy", TSCreate_Dummy)); #if !defined(PETSC_USE_COMPLEX) PetscCall(CharacteristicRegister("dummy", CharacteristicCreate_Dummy)); #endif PetscCall(SNESLineSearchRegister("dummy", SNESLineSearchCreate_Dummy)); PetscCall(SNESRegister("dummy", SNESCreate_Dummy)); PetscCall(KSPGuessRegister("dummy", KSPGuessCreate_Dummy)); PetscCall(KSPRegister("dummy", KSPCreate_Dummy)); PetscCall(PCRegister("dummy", PCCreate_Dummy)); PetscCall(DMRegister("dummy", DMCreate_Dummy)); PetscCall(MatPartitioningRegister("dummy", MatPartitioningCreate_Dummy)); PetscCall(MatRegister("dummy", MatCreate_Dummy)); PetscCall(PFRegister("dummy", PFCreate_Dummy)); PetscCall(VecScatterRegister("dummy", VecScatterCreate_Dummy)); PetscCall(VecRegister("dummy", VecCreate_Dummy)); PetscCall(PetscSFRegister("dummy", PetscSFCreate_Dummy)); PetscCall(ISLocalToGlobalMappingRegister("dummy", ISLocalToGlobalMappingCreate_Dummy)); PetscCall(ISRegister("dummy", ISCreate_Dummy)); PetscCall(AORegister("dummy", AOCreate_Dummy)); PetscCall(PetscDrawRegister("dummy", PetscDrawCreate_Dummy)); PetscCall(PetscViewerRegister("dummy", PetscViewerCreate_Dummy)); PetscCall(PetscRandomRegister("dummy", PetscRandomCreate_Dummy)); PetscCall(PetscFinalize()); return 0; } /*TEST test: output_file: output/empty.out TEST*/