#include void testDuplicatesWithChanges(PetscInt *a, PetscScalar *b) { /* no remove */ PetscValidIntPointer(a,1); /* remove */ PetscValidIntPointer(a,1); /* no remove */ PetscValidIntPointer(b,5); /* ~should~ be removed but won't be */ PetscValidScalarPointer(b,7); PetscValidScalarPointer(b,3); return; } void testDuplicatesScoped(PetscInt *a, PetscScalar *b) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); { /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } return; } void testDuplicatesDoubleScoped(PetscInt *a, PetscScalar *b) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); { /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } { /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } return; } void testNoDuplicatesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond) { switch (cond) { case PETSC_TRUE: /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); break; case PETSC_FALSE: /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); break; } return; } void testDuplicatesNoChangesSwitch(PetscInt *a, PetscScalar *b, PetscBool cond) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); switch (cond) { case PETSC_TRUE: /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); break; case PETSC_FALSE: /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); break; } return; } void testNoDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) { if (cond) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } else { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } return; } void testDuplicatesIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); if (cond) { /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } else { /* remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } return; } void testNoDuplicatesIfElseIfElse(PetscInt *a, PetscScalar *b, PetscBool cond) { if (cond) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } else if (!cond) { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } else { /* no remove */ PetscValidIntPointer(a,1); PetscValidScalarPointer(b,2); } return; }