#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; }