1447bcd8fSJacob Faibussowitsch #include <petsc/private/petscimpl.h>
2064a246eSJacob Faibussowitsch
testDuplicatesWithChanges(PetscInt * a,PetscScalar * b)3447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesWithChanges(PetscInt *a, PetscScalar *b)
4d71ae5a4SJacob Faibussowitsch {
5064a246eSJacob Faibussowitsch /* no remove */
6*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
7064a246eSJacob Faibussowitsch /* remove */
8*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
9064a246eSJacob Faibussowitsch /* no remove */
10*4f572ea9SToby Isaac PetscAssertPointer(b, 5);
11064a246eSJacob Faibussowitsch /* ~should~ be removed but won't be */
12*4f572ea9SToby Isaac PetscAssertPointer(b, 7);
13*4f572ea9SToby Isaac PetscAssertPointer(b, 3);
14447bcd8fSJacob Faibussowitsch return 0;
15064a246eSJacob Faibussowitsch }
16064a246eSJacob Faibussowitsch
testDuplicatesScoped(PetscInt * a,PetscScalar * b)17447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesScoped(PetscInt *a, PetscScalar *b)
18d71ae5a4SJacob Faibussowitsch {
19064a246eSJacob Faibussowitsch /* no remove */
20*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
21*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
22064a246eSJacob Faibussowitsch /* remove */
23*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
24*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
25064a246eSJacob Faibussowitsch {
26064a246eSJacob Faibussowitsch /* remove */
27*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
28*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
29064a246eSJacob Faibussowitsch }
30447bcd8fSJacob Faibussowitsch return 0;
31064a246eSJacob Faibussowitsch }
32064a246eSJacob Faibussowitsch
testDuplicatesDoubleScoped(PetscInt * a,PetscScalar * b)33447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesDoubleScoped(PetscInt *a, PetscScalar *b)
34d71ae5a4SJacob Faibussowitsch {
35064a246eSJacob Faibussowitsch /* no remove */
36*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
37*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
38064a246eSJacob Faibussowitsch /* remove */
39*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
40*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
41064a246eSJacob Faibussowitsch {
42064a246eSJacob Faibussowitsch /* remove */
43*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
44*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
45064a246eSJacob Faibussowitsch }
46064a246eSJacob Faibussowitsch {
47064a246eSJacob Faibussowitsch /* remove */
48*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
49*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
50064a246eSJacob Faibussowitsch }
51447bcd8fSJacob Faibussowitsch return 0;
52064a246eSJacob Faibussowitsch }
53064a246eSJacob Faibussowitsch
testNoDuplicatesSwitch(PetscInt * a,PetscScalar * b,PetscBool cond)54447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond)
55d71ae5a4SJacob Faibussowitsch {
56064a246eSJacob Faibussowitsch switch (cond) {
57064a246eSJacob Faibussowitsch case PETSC_TRUE:
58064a246eSJacob Faibussowitsch /* no remove */
59*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
60*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
61064a246eSJacob Faibussowitsch break;
62064a246eSJacob Faibussowitsch case PETSC_FALSE:
63064a246eSJacob Faibussowitsch /* no remove */
64*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
65*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
66064a246eSJacob Faibussowitsch break;
67064a246eSJacob Faibussowitsch }
68447bcd8fSJacob Faibussowitsch return 0;
69064a246eSJacob Faibussowitsch }
70064a246eSJacob Faibussowitsch
testDuplicatesNoChangesSwitch(PetscInt * a,PetscScalar * b,PetscBool cond)71447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesNoChangesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond)
72d71ae5a4SJacob Faibussowitsch {
73064a246eSJacob Faibussowitsch /* no remove */
74*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
75*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
76064a246eSJacob Faibussowitsch switch (cond) {
77064a246eSJacob Faibussowitsch case PETSC_TRUE:
78064a246eSJacob Faibussowitsch /* remove */
79*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
80*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
81064a246eSJacob Faibussowitsch break;
82064a246eSJacob Faibussowitsch case PETSC_FALSE:
83064a246eSJacob Faibussowitsch /* remove */
84*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
85*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
86064a246eSJacob Faibussowitsch break;
87064a246eSJacob Faibussowitsch }
88447bcd8fSJacob Faibussowitsch return 0;
89064a246eSJacob Faibussowitsch }
90064a246eSJacob Faibussowitsch
testNoDuplicatesIfElse(PetscInt * a,PetscScalar * b,PetscBool cond)91447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond)
92d71ae5a4SJacob Faibussowitsch {
93064a246eSJacob Faibussowitsch if (cond) {
94064a246eSJacob Faibussowitsch /* no remove */
95*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
96*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
97064a246eSJacob Faibussowitsch } else {
98064a246eSJacob Faibussowitsch /* no remove */
99*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
100*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
101064a246eSJacob Faibussowitsch }
102447bcd8fSJacob Faibussowitsch return 0;
103064a246eSJacob Faibussowitsch }
104064a246eSJacob Faibussowitsch
testDuplicatesIfElse(PetscInt * a,PetscScalar * b,PetscBool cond)105447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond)
106d71ae5a4SJacob Faibussowitsch {
107064a246eSJacob Faibussowitsch /* no remove */
108*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
109*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
110064a246eSJacob Faibussowitsch if (cond) {
111064a246eSJacob Faibussowitsch /* remove */
112*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
113*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
114064a246eSJacob Faibussowitsch } else {
115064a246eSJacob Faibussowitsch /* remove */
116*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
117*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
118064a246eSJacob Faibussowitsch }
119447bcd8fSJacob Faibussowitsch return 0;
120064a246eSJacob Faibussowitsch }
121064a246eSJacob Faibussowitsch
testNoDuplicatesIfElseIfElse(PetscInt * a,PetscScalar * b,PetscBool cond)122447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesIfElseIfElse(PetscInt *a, PetscScalar *b, PetscBool cond)
123d71ae5a4SJacob Faibussowitsch {
124064a246eSJacob Faibussowitsch if (cond) {
125064a246eSJacob Faibussowitsch /* no remove */
126*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
127*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
128064a246eSJacob Faibussowitsch } else if (!cond) {
129064a246eSJacob Faibussowitsch /* no remove */
130*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
131*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
132064a246eSJacob Faibussowitsch } else {
133064a246eSJacob Faibussowitsch /* no remove */
134*4f572ea9SToby Isaac PetscAssertPointer(a, 1);
135*4f572ea9SToby Isaac PetscAssertPointer(b, 2);
136064a246eSJacob Faibussowitsch }
137447bcd8fSJacob Faibussowitsch return 0;
138064a246eSJacob Faibussowitsch }
139