1064a246eSJacob Faibussowitsch /* for access to private vec members */ 2064a246eSJacob Faibussowitsch #include <petsc/private/viewerimpl.h> 3064a246eSJacob Faibussowitsch 4*6aad120cSJose E. Roman /* forward declare */ 5064a246eSJacob Faibussowitsch void extractFunc(PetscViewer,void**); 6064a246eSJacob Faibussowitsch 7064a246eSJacob Faibussowitsch void testOutOfLineReference(PetscViewer v, PetscViewer v2) 8064a246eSJacob Faibussowitsch { 9064a246eSJacob Faibussowitsch /* linter should be able to connect all of these to v */ 10064a246eSJacob Faibussowitsch void *foo = v->data,*bar,*baz,*blop; 11064a246eSJacob Faibussowitsch void **blip = &v->data; 12064a246eSJacob Faibussowitsch 13064a246eSJacob Faibussowitsch bar = v->data; 14064a246eSJacob Faibussowitsch blop = blip[0]; 15064a246eSJacob Faibussowitsch extractFunc(v,&baz); 16064a246eSJacob Faibussowitsch 17064a246eSJacob Faibussowitsch /* incorrect */ 18064a246eSJacob Faibussowitsch PetscValidPointer(foo,-1); 19064a246eSJacob Faibussowitsch PetscValidPointer(bar,-2); 20064a246eSJacob Faibussowitsch PetscValidPointer(baz,-3); 21064a246eSJacob Faibussowitsch PetscValidPointer((void *)v->data,-4); 22064a246eSJacob Faibussowitsch PetscValidPointer(*blip,-5); 23064a246eSJacob Faibussowitsch PetscValidPointer(blop,-6); 24064a246eSJacob Faibussowitsch 25064a246eSJacob Faibussowitsch /* correct */ 26064a246eSJacob Faibussowitsch PetscValidPointer(foo,1); 27064a246eSJacob Faibussowitsch PetscValidPointer(bar,1); 28064a246eSJacob Faibussowitsch PetscValidPointer(baz,1); 29064a246eSJacob Faibussowitsch PetscValidPointer((void *)v->data,1); 30064a246eSJacob Faibussowitsch PetscValidPointer(*blip,1); 31064a246eSJacob Faibussowitsch PetscValidPointer(blop,1); 32064a246eSJacob Faibussowitsch return; 33064a246eSJacob Faibussowitsch } 34