1 static char help[] = "Demonstrates previous memory leak for XXXRegister()\n\n";
2
3 #include <petscts.h>
4 #include <petsccharacteristic.h>
5 #include <petscdraw.h>
6 #include <petscdm.h>
7 #include <petscpf.h>
8 #include <petscsf.h>
9 #include <petscao.h>
10
TSGLLEAdaptCreate_Dummy(TSGLLEAdapt ts)11 static PetscErrorCode TSGLLEAdaptCreate_Dummy(TSGLLEAdapt ts)
12 {
13 PetscFunctionBeginUser;
14 PetscFunctionReturn(PETSC_SUCCESS);
15 }
16
TSGLLECreate_Dummy(TS ts)17 static PetscErrorCode TSGLLECreate_Dummy(TS ts)
18 {
19 PetscFunctionBeginUser;
20 PetscFunctionReturn(PETSC_SUCCESS);
21 }
22
TSAdaptCreate_Dummy(TSAdapt ts)23 static PetscErrorCode TSAdaptCreate_Dummy(TSAdapt ts)
24 {
25 PetscFunctionBeginUser;
26 PetscFunctionReturn(PETSC_SUCCESS);
27 }
28
TSCreate_Dummy(TS ts)29 static PetscErrorCode TSCreate_Dummy(TS ts)
30 {
31 PetscFunctionBeginUser;
32 PetscFunctionReturn(PETSC_SUCCESS);
33 }
34
35 #if !defined(PETSC_USE_COMPLEX)
CharacteristicCreate_Dummy(Characteristic chr)36 static PetscErrorCode CharacteristicCreate_Dummy(Characteristic chr)
37 {
38 PetscFunctionBeginUser;
39 PetscFunctionReturn(PETSC_SUCCESS);
40 }
41 #endif
42
SNESLineSearchCreate_Dummy(SNESLineSearch sneslinesearch)43 static PetscErrorCode SNESLineSearchCreate_Dummy(SNESLineSearch sneslinesearch)
44 {
45 PetscFunctionBeginUser;
46 PetscFunctionReturn(PETSC_SUCCESS);
47 }
48
SNESCreate_Dummy(SNES snes)49 static PetscErrorCode SNESCreate_Dummy(SNES snes)
50 {
51 PetscFunctionBeginUser;
52 PetscFunctionReturn(PETSC_SUCCESS);
53 }
54
KSPCreate_Dummy(KSP ksp)55 static PetscErrorCode KSPCreate_Dummy(KSP ksp)
56 {
57 PetscFunctionBeginUser;
58 PetscFunctionReturn(PETSC_SUCCESS);
59 }
60
KSPGuessCreate_Dummy(KSPGuess ksp)61 static PetscErrorCode KSPGuessCreate_Dummy(KSPGuess ksp)
62 {
63 PetscFunctionBeginUser;
64 PetscFunctionReturn(PETSC_SUCCESS);
65 }
66
PCCreate_Dummy(PC pc)67 static PetscErrorCode PCCreate_Dummy(PC pc)
68 {
69 PetscFunctionBeginUser;
70 PetscFunctionReturn(PETSC_SUCCESS);
71 }
72
DMCreate_Dummy(DM dm)73 static PetscErrorCode DMCreate_Dummy(DM dm)
74 {
75 PetscFunctionBeginUser;
76 PetscFunctionReturn(PETSC_SUCCESS);
77 }
78
MatPartitioningCreate_Dummy(MatPartitioning mat)79 static PetscErrorCode MatPartitioningCreate_Dummy(MatPartitioning mat)
80 {
81 PetscFunctionBeginUser;
82 PetscFunctionReturn(PETSC_SUCCESS);
83 }
84
MatCreate_Dummy(Mat mat)85 static PetscErrorCode MatCreate_Dummy(Mat mat)
86 {
87 PetscFunctionBeginUser;
88 PetscFunctionReturn(PETSC_SUCCESS);
89 }
90
PFCreate_Dummy(PF pf,PetscCtx ctx)91 static PetscErrorCode PFCreate_Dummy(PF pf, PetscCtx ctx)
92 {
93 PetscFunctionBeginUser;
94 PetscFunctionReturn(PETSC_SUCCESS);
95 }
96
VecCreate_Dummy(Vec vec)97 static PetscErrorCode VecCreate_Dummy(Vec vec)
98 {
99 PetscFunctionBeginUser;
100 PetscFunctionReturn(PETSC_SUCCESS);
101 }
102
VecScatterCreate_Dummy(VecScatter vec)103 static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec)
104 {
105 PetscFunctionBeginUser;
106 PetscFunctionReturn(PETSC_SUCCESS);
107 }
108
PetscSFCreate_Dummy(PetscSF sf)109 static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf)
110 {
111 PetscFunctionBeginUser;
112 PetscFunctionReturn(PETSC_SUCCESS);
113 }
114
ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is)115 static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is)
116 {
117 PetscFunctionBeginUser;
118 PetscFunctionReturn(PETSC_SUCCESS);
119 }
120
ISCreate_Dummy(IS is)121 static PetscErrorCode ISCreate_Dummy(IS is)
122 {
123 PetscFunctionBeginUser;
124 PetscFunctionReturn(PETSC_SUCCESS);
125 }
126
AOCreate_Dummy(AO ao)127 static PetscErrorCode AOCreate_Dummy(AO ao)
128 {
129 PetscFunctionBeginUser;
130 PetscFunctionReturn(PETSC_SUCCESS);
131 }
132
PetscDrawCreate_Dummy(PetscDraw draw)133 static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw)
134 {
135 PetscFunctionBeginUser;
136 PetscFunctionReturn(PETSC_SUCCESS);
137 }
138
PetscViewerCreate_Dummy(PetscViewer viewer)139 static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer)
140 {
141 PetscFunctionBeginUser;
142 PetscFunctionReturn(PETSC_SUCCESS);
143 }
144
PetscRandomCreate_Dummy(PetscRandom arand)145 static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand)
146 {
147 PetscFunctionBeginUser;
148 PetscFunctionReturn(PETSC_SUCCESS);
149 }
150
main(int argc,char ** argv)151 int main(int argc, char **argv)
152 {
153 PetscReal A[1] = {0.0}, Gamma[1] = {1.0}, b[1] = {1.0}, c[1] = {1.0}, d[1] = {1.0};
154
155 PetscFunctionBeginUser;
156 PetscCall(PetscInitialize(&argc, &argv, NULL, help));
157 /* TaoLineSearchRegister() also has the same memory leak */
158 /* TaoRegister() also has the same memory leak */
159 PetscCall(TSGLLEAdaptRegister("dummy", TSGLLEAdaptCreate_Dummy));
160 PetscCall(TSGLLERegister("dummy", TSGLLECreate_Dummy));
161 PetscCall(TSRKRegister("dummy", 0, 0, A, 0, 0, 0, 0, 0));
162 PetscCall(TSGLEERegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
163 PetscCall(TSARKIMEXRegister("dummy", 0, 1, A, b, c, A, b, c, 0, 0, 0, 0, 0));
164 PetscCall(TSRosWRegister("dummy", 0, 1, A, Gamma, b, 0, 0, 0));
165 PetscCall(TSBasicSymplecticRegister("dummy", 0, 0, c, d));
166 PetscCall(TSAdaptRegister("dummy", TSAdaptCreate_Dummy));
167 PetscCall(TSRegister("dummy", TSCreate_Dummy));
168 #if !defined(PETSC_USE_COMPLEX)
169 PetscCall(CharacteristicRegister("dummy", CharacteristicCreate_Dummy));
170 #endif
171 PetscCall(SNESLineSearchRegister("dummy", SNESLineSearchCreate_Dummy));
172 PetscCall(SNESRegister("dummy", SNESCreate_Dummy));
173 PetscCall(KSPGuessRegister("dummy", KSPGuessCreate_Dummy));
174 PetscCall(KSPRegister("dummy", KSPCreate_Dummy));
175 PetscCall(PCRegister("dummy", PCCreate_Dummy));
176 PetscCall(DMRegister("dummy", DMCreate_Dummy));
177 PetscCall(MatPartitioningRegister("dummy", MatPartitioningCreate_Dummy));
178 PetscCall(MatRegister("dummy", MatCreate_Dummy));
179 PetscCall(PFRegister("dummy", PFCreate_Dummy));
180 PetscCall(VecScatterRegister("dummy", VecScatterCreate_Dummy));
181 PetscCall(VecRegister("dummy", VecCreate_Dummy));
182 PetscCall(PetscSFRegister("dummy", PetscSFCreate_Dummy));
183 PetscCall(ISLocalToGlobalMappingRegister("dummy", ISLocalToGlobalMappingCreate_Dummy));
184 PetscCall(ISRegister("dummy", ISCreate_Dummy));
185 PetscCall(AORegister("dummy", AOCreate_Dummy));
186 PetscCall(PetscDrawRegister("dummy", PetscDrawCreate_Dummy));
187 PetscCall(PetscViewerRegister("dummy", PetscViewerCreate_Dummy));
188 PetscCall(PetscRandomRegister("dummy", PetscRandomCreate_Dummy));
189 PetscCall(PetscFinalize());
190 return 0;
191 }
192
193 /*TEST
194
195 test:
196 output_file: output/empty.out
197
198 TEST*/
199