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