1*447bcd8fSJacob Faibussowitsch #include <petsc/private/petscimpl.h> 2064a246eSJacob Faibussowitsch 3*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesWithChanges(PetscInt *a, PetscScalar *b) 4d71ae5a4SJacob Faibussowitsch { 5064a246eSJacob Faibussowitsch /* no remove */ 6064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 7064a246eSJacob Faibussowitsch /* remove */ 8064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 9064a246eSJacob Faibussowitsch /* no remove */ 10064a246eSJacob Faibussowitsch PetscValidIntPointer(b, 5); 11064a246eSJacob Faibussowitsch /* ~should~ be removed but won't be */ 12064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 7); 13064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 3); 14*447bcd8fSJacob Faibussowitsch return 0; 15064a246eSJacob Faibussowitsch } 16064a246eSJacob Faibussowitsch 17*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesScoped(PetscInt *a, PetscScalar *b) 18d71ae5a4SJacob Faibussowitsch { 19064a246eSJacob Faibussowitsch /* no remove */ 20064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 21064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 22064a246eSJacob Faibussowitsch /* remove */ 23064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 24064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 25064a246eSJacob Faibussowitsch { 26064a246eSJacob Faibussowitsch /* remove */ 27064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 28064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 29064a246eSJacob Faibussowitsch } 30*447bcd8fSJacob Faibussowitsch return 0; 31064a246eSJacob Faibussowitsch } 32064a246eSJacob Faibussowitsch 33*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesDoubleScoped(PetscInt *a, PetscScalar *b) 34d71ae5a4SJacob Faibussowitsch { 35064a246eSJacob Faibussowitsch /* no remove */ 36064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 37064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 38064a246eSJacob Faibussowitsch /* remove */ 39064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 40064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 41064a246eSJacob Faibussowitsch { 42064a246eSJacob Faibussowitsch /* remove */ 43064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 44064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 45064a246eSJacob Faibussowitsch } 46064a246eSJacob Faibussowitsch { 47064a246eSJacob Faibussowitsch /* remove */ 48064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 49064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 50064a246eSJacob Faibussowitsch } 51*447bcd8fSJacob Faibussowitsch return 0; 52064a246eSJacob Faibussowitsch } 53064a246eSJacob Faibussowitsch 54*447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond) 55d71ae5a4SJacob Faibussowitsch { 56064a246eSJacob Faibussowitsch switch (cond) { 57064a246eSJacob Faibussowitsch case PETSC_TRUE: 58064a246eSJacob Faibussowitsch /* no remove */ 59064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 60064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 61064a246eSJacob Faibussowitsch break; 62064a246eSJacob Faibussowitsch case PETSC_FALSE: 63064a246eSJacob Faibussowitsch /* no remove */ 64064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 65064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 66064a246eSJacob Faibussowitsch break; 67064a246eSJacob Faibussowitsch } 68*447bcd8fSJacob Faibussowitsch return 0; 69064a246eSJacob Faibussowitsch } 70064a246eSJacob Faibussowitsch 71*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesNoChangesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond) 72d71ae5a4SJacob Faibussowitsch { 73064a246eSJacob Faibussowitsch /* no remove */ 74064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 75064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 76064a246eSJacob Faibussowitsch switch (cond) { 77064a246eSJacob Faibussowitsch case PETSC_TRUE: 78064a246eSJacob Faibussowitsch /* remove */ 79064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 80064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 81064a246eSJacob Faibussowitsch break; 82064a246eSJacob Faibussowitsch case PETSC_FALSE: 83064a246eSJacob Faibussowitsch /* remove */ 84064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 85064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 86064a246eSJacob Faibussowitsch break; 87064a246eSJacob Faibussowitsch } 88*447bcd8fSJacob Faibussowitsch return 0; 89064a246eSJacob Faibussowitsch } 90064a246eSJacob Faibussowitsch 91*447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) 92d71ae5a4SJacob Faibussowitsch { 93064a246eSJacob Faibussowitsch if (cond) { 94064a246eSJacob Faibussowitsch /* no remove */ 95064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 96064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 97064a246eSJacob Faibussowitsch } else { 98064a246eSJacob Faibussowitsch /* no remove */ 99064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 100064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 101064a246eSJacob Faibussowitsch } 102*447bcd8fSJacob Faibussowitsch return 0; 103064a246eSJacob Faibussowitsch } 104064a246eSJacob Faibussowitsch 105*447bcd8fSJacob Faibussowitsch PetscErrorCode testDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) 106d71ae5a4SJacob Faibussowitsch { 107064a246eSJacob Faibussowitsch /* no remove */ 108064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 109064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 110064a246eSJacob Faibussowitsch if (cond) { 111064a246eSJacob Faibussowitsch /* remove */ 112064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 113064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 114064a246eSJacob Faibussowitsch } else { 115064a246eSJacob Faibussowitsch /* remove */ 116064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 117064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 118064a246eSJacob Faibussowitsch } 119*447bcd8fSJacob Faibussowitsch return 0; 120064a246eSJacob Faibussowitsch } 121064a246eSJacob Faibussowitsch 122*447bcd8fSJacob Faibussowitsch PetscErrorCode testNoDuplicatesIfElseIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) 123d71ae5a4SJacob Faibussowitsch { 124064a246eSJacob Faibussowitsch if (cond) { 125064a246eSJacob Faibussowitsch /* no remove */ 126064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 127064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 128064a246eSJacob Faibussowitsch } else if (!cond) { 129064a246eSJacob Faibussowitsch /* no remove */ 130064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 131064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 132064a246eSJacob Faibussowitsch } else { 133064a246eSJacob Faibussowitsch /* no remove */ 134064a246eSJacob Faibussowitsch PetscValidIntPointer(a, 1); 135064a246eSJacob Faibussowitsch PetscValidScalarPointer(b, 2); 136064a246eSJacob Faibussowitsch } 137*447bcd8fSJacob Faibussowitsch return 0; 138064a246eSJacob Faibussowitsch } 139