xref: /petsc/src/sys/tests/linter/testDuplicates.c (revision 447bcd8fae0acafb34f76e22d0a980ee3af1ea6c)
1*447bcd8fSJacob Faibussowitsch #include <petsc/private/petscimpl.h>
2064a246eSJacob Faibussowitsch 
3*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesWithChanges(PetscInt *a, PetscScalar *b)
4d71ae5a4SJacob Faibussowitsch {
5064a246eSJacob Faibussowitsch   /* no remove */
6064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
7064a246eSJacob Faibussowitsch   /* remove */
8064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
9064a246eSJacob Faibussowitsch   /* no remove */
10064a246eSJacob Faibussowitsch   PetscValidIntPointer(b, 5);
11064a246eSJacob Faibussowitsch   /* ~should~ be removed but won't be */
12064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 7);
13064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 3);
14*447bcd8fSJacob Faibussowitsch   return 0;
15064a246eSJacob Faibussowitsch }
16064a246eSJacob Faibussowitsch 
17*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesScoped(PetscInt *a, PetscScalar *b)
18d71ae5a4SJacob Faibussowitsch {
19064a246eSJacob Faibussowitsch   /* no remove */
20064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
21064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 2);
22064a246eSJacob Faibussowitsch   /* remove */
23064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
24064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 2);
25064a246eSJacob Faibussowitsch   {
26064a246eSJacob Faibussowitsch     /* remove */
27064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
28064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
29064a246eSJacob Faibussowitsch   }
30*447bcd8fSJacob Faibussowitsch   return 0;
31064a246eSJacob Faibussowitsch }
32064a246eSJacob Faibussowitsch 
33*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesDoubleScoped(PetscInt *a, PetscScalar *b)
34d71ae5a4SJacob Faibussowitsch {
35064a246eSJacob Faibussowitsch   /* no remove */
36064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
37064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 2);
38064a246eSJacob Faibussowitsch   /* remove */
39064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
40064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 2);
41064a246eSJacob Faibussowitsch   {
42064a246eSJacob Faibussowitsch     /* remove */
43064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
44064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
45064a246eSJacob Faibussowitsch   }
46064a246eSJacob Faibussowitsch   {
47064a246eSJacob Faibussowitsch     /* remove */
48064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
49064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
50064a246eSJacob Faibussowitsch   }
51*447bcd8fSJacob Faibussowitsch   return 0;
52064a246eSJacob Faibussowitsch }
53064a246eSJacob Faibussowitsch 
54*447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond)
55d71ae5a4SJacob Faibussowitsch {
56064a246eSJacob Faibussowitsch   switch (cond) {
57064a246eSJacob Faibussowitsch   case PETSC_TRUE:
58064a246eSJacob Faibussowitsch     /* no remove */
59064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
60064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
61064a246eSJacob Faibussowitsch     break;
62064a246eSJacob Faibussowitsch   case PETSC_FALSE:
63064a246eSJacob Faibussowitsch     /* no remove */
64064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
65064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
66064a246eSJacob Faibussowitsch     break;
67064a246eSJacob Faibussowitsch   }
68*447bcd8fSJacob Faibussowitsch   return 0;
69064a246eSJacob Faibussowitsch }
70064a246eSJacob Faibussowitsch 
71*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesNoChangesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond)
72d71ae5a4SJacob Faibussowitsch {
73064a246eSJacob Faibussowitsch   /* no remove */
74064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
75064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 2);
76064a246eSJacob Faibussowitsch   switch (cond) {
77064a246eSJacob Faibussowitsch   case PETSC_TRUE:
78064a246eSJacob Faibussowitsch     /* remove */
79064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
80064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
81064a246eSJacob Faibussowitsch     break;
82064a246eSJacob Faibussowitsch   case PETSC_FALSE:
83064a246eSJacob Faibussowitsch     /* remove */
84064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
85064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
86064a246eSJacob Faibussowitsch     break;
87064a246eSJacob Faibussowitsch   }
88*447bcd8fSJacob Faibussowitsch   return 0;
89064a246eSJacob Faibussowitsch }
90064a246eSJacob Faibussowitsch 
91*447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond)
92d71ae5a4SJacob Faibussowitsch {
93064a246eSJacob Faibussowitsch   if (cond) {
94064a246eSJacob Faibussowitsch     /* no remove */
95064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
96064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
97064a246eSJacob Faibussowitsch   } else {
98064a246eSJacob Faibussowitsch     /* no remove */
99064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
100064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
101064a246eSJacob Faibussowitsch   }
102*447bcd8fSJacob Faibussowitsch   return 0;
103064a246eSJacob Faibussowitsch }
104064a246eSJacob Faibussowitsch 
105*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond)
106d71ae5a4SJacob Faibussowitsch {
107064a246eSJacob Faibussowitsch   /* no remove */
108064a246eSJacob Faibussowitsch   PetscValidIntPointer(a, 1);
109064a246eSJacob Faibussowitsch   PetscValidScalarPointer(b, 2);
110064a246eSJacob Faibussowitsch   if (cond) {
111064a246eSJacob Faibussowitsch     /* remove */
112064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
113064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
114064a246eSJacob Faibussowitsch   } else {
115064a246eSJacob Faibussowitsch     /* remove */
116064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
117064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
118064a246eSJacob Faibussowitsch   }
119*447bcd8fSJacob Faibussowitsch   return 0;
120064a246eSJacob Faibussowitsch }
121064a246eSJacob Faibussowitsch 
122*447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesIfElseIfElse(PetscInt *a, PetscScalar *b, PetscBool cond)
123d71ae5a4SJacob Faibussowitsch {
124064a246eSJacob Faibussowitsch   if (cond) {
125064a246eSJacob Faibussowitsch     /* no remove */
126064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
127064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
128064a246eSJacob Faibussowitsch   } else if (!cond) {
129064a246eSJacob Faibussowitsch     /* no remove */
130064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
131064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
132064a246eSJacob Faibussowitsch   } else {
133064a246eSJacob Faibussowitsch     /* no remove */
134064a246eSJacob Faibussowitsch     PetscValidIntPointer(a, 1);
135064a246eSJacob Faibussowitsch     PetscValidScalarPointer(b, 2);
136064a246eSJacob Faibussowitsch   }
137*447bcd8fSJacob Faibussowitsch   return 0;
138064a246eSJacob Faibussowitsch }
139