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