1 #include <petsc/private/petscimpl.h> 2 3 PetscErrorCode 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 0; 15 } 16 17 PetscErrorCode 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 0; 31 } 32 33 PetscErrorCode 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 0; 52 } 53 54 PetscErrorCode 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 0; 69 } 70 71 PetscErrorCode 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 0; 89 } 90 91 PetscErrorCode 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 0; 103 } 104 105 PetscErrorCode 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 0; 120 } 121 122 PetscErrorCode 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 0; 138 } 139