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