xref: /petsc/src/sys/tests/linter/testDuplicates.c (revision 9371c9d470a9602b6d10a8bf50c9b2280a79e45a)
1 #include <petscsys.h>
2 
3 void testDuplicatesWithChanges(PetscInt *a, PetscScalar *b) {
4   /* no remove */
5   PetscValidIntPointer(a, 1);
6   /* remove */
7   PetscValidIntPointer(a, 1);
8   /* no remove */
9   PetscValidIntPointer(b, 5);
10   /* ~should~ be removed but won't be */
11   PetscValidScalarPointer(b, 7);
12   PetscValidScalarPointer(b, 3);
13   return;
14 }
15 
16 void testDuplicatesScoped(PetscInt *a, PetscScalar *b) {
17   /* no remove */
18   PetscValidIntPointer(a, 1);
19   PetscValidScalarPointer(b, 2);
20   /* remove */
21   PetscValidIntPointer(a, 1);
22   PetscValidScalarPointer(b, 2);
23   {
24     /* remove */
25     PetscValidIntPointer(a, 1);
26     PetscValidScalarPointer(b, 2);
27   }
28   return;
29 }
30 
31 void testDuplicatesDoubleScoped(PetscInt *a, PetscScalar *b) {
32   /* no remove */
33   PetscValidIntPointer(a, 1);
34   PetscValidScalarPointer(b, 2);
35   /* remove */
36   PetscValidIntPointer(a, 1);
37   PetscValidScalarPointer(b, 2);
38   {
39     /* remove */
40     PetscValidIntPointer(a, 1);
41     PetscValidScalarPointer(b, 2);
42   }
43   {
44     /* remove */
45     PetscValidIntPointer(a, 1);
46     PetscValidScalarPointer(b, 2);
47   }
48   return;
49 }
50 
51 void testNoDuplicatesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond) {
52   switch (cond) {
53   case PETSC_TRUE:
54     /* no remove */
55     PetscValidIntPointer(a, 1);
56     PetscValidScalarPointer(b, 2);
57     break;
58   case PETSC_FALSE:
59     /* no remove */
60     PetscValidIntPointer(a, 1);
61     PetscValidScalarPointer(b, 2);
62     break;
63   }
64   return;
65 }
66 
67 void testDuplicatesNoChangesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond) {
68   /* no remove */
69   PetscValidIntPointer(a, 1);
70   PetscValidScalarPointer(b, 2);
71   switch (cond) {
72   case PETSC_TRUE:
73     /* remove */
74     PetscValidIntPointer(a, 1);
75     PetscValidScalarPointer(b, 2);
76     break;
77   case PETSC_FALSE:
78     /* remove */
79     PetscValidIntPointer(a, 1);
80     PetscValidScalarPointer(b, 2);
81     break;
82   }
83   return;
84 }
85 
86 void testNoDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) {
87   if (cond) {
88     /* no remove */
89     PetscValidIntPointer(a, 1);
90     PetscValidScalarPointer(b, 2);
91   } else {
92     /* no remove */
93     PetscValidIntPointer(a, 1);
94     PetscValidScalarPointer(b, 2);
95   }
96   return;
97 }
98 
99 void testDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) {
100   /* no remove */
101   PetscValidIntPointer(a, 1);
102   PetscValidScalarPointer(b, 2);
103   if (cond) {
104     /* remove */
105     PetscValidIntPointer(a, 1);
106     PetscValidScalarPointer(b, 2);
107   } else {
108     /* remove */
109     PetscValidIntPointer(a, 1);
110     PetscValidScalarPointer(b, 2);
111   }
112   return;
113 }
114 
115 void testNoDuplicatesIfElseIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) {
116   if (cond) {
117     /* no remove */
118     PetscValidIntPointer(a, 1);
119     PetscValidScalarPointer(b, 2);
120   } else if (!cond) {
121     /* no remove */
122     PetscValidIntPointer(a, 1);
123     PetscValidScalarPointer(b, 2);
124   } else {
125     /* no remove */
126     PetscValidIntPointer(a, 1);
127     PetscValidScalarPointer(b, 2);
128   }
129   return;
130 }
131