<div dir="ltr">Here it is:<div><br></div><div><div>#define PetscObjectOptionsBegin(obj) 0; do {                            \</div><div>             PetscOptionItems PetscOptionsObjectBase;\</div><div>             PetscOptionItems *PetscOptionsObject = &PetscOptionsObjectBase; \</div><div>             PetscOptionsObject->options = ((PetscObject)obj)->options; \</div><div>             for (PetscOptionsObject->count=(PetscOptionsPublish?-1:1); PetscOptionsObject->count<2; PetscOptionsObject->count++) {\</div><div>             PetscErrorCode _5_ierr = PetscObjectOptionsBegin_Private(PetscOptionsObject,obj);CHKERRQ(_5_ierr);</div><div><br></div><div>The ((PetscObject)obj)->options requires the definition of PetscObject which is not in user</div><div>facing headers, so this bombs.</div><div><br></div><div>  Matt</div><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>