[petsc-dev] PETSc blame digest (next) 2015-04-08

Jed Brown jed at jedbrown.org
Wed Apr 8 09:08:05 CDT 2015


PETSc checkBuilds <petsc-checkbuilds at mcs.anl.gov> writes:
> warnings attributed to commit ac76247 Point-to-point PetscSF: bcast and reduce, still need fetch-and-op, ref #9
>
>   src/vec/is/sf/impls/basic/sfbasic.c:816
>     [http://ftp.mcs.anl.gov/pub/petsc/nightlylogs/archive/2015/04/08/build_next_arch-opensolaris-cmplx-pkgs-dbg_n-gage.log]
>       "/export/home/petsc/petsc.clone-3/src/vec/is/sf/impls/basic/sfbasic.c", line 816: warning: loop not entered at top

How do we fix this?  If I remove the final (unreached)
PetscFunctionReturn(0) then the code is invalid when not
PETSC_USE_ERRORCHECKING (no return statement in function returning
non-void).  But as long as error checking is on, we don't reach that
statement.  Can we tune the warning flags to avoid this noise?

static PetscErrorCode PetscSFBasicGetPackInUse(PetscSF sf,MPI_Datatype unit,const void *key,PetscCopyMode cmode,PetscSFBasicPack *mylink)
{
  PetscSF_Basic    *bas = (PetscSF_Basic*)sf->data;
  PetscErrorCode   ierr;
  PetscSFBasicPack link,*p;

  PetscFunctionBegin;
  /* Look for types in cache */
  for (p=&bas->inuse; (link=*p); p=&link->next) {
    PetscBool match;
    ierr = MPIPetsc_Type_compare(unit,link->unit,&match);CHKERRQ(ierr);
    if (match && (key == link->key)) {
      switch (cmode) {
      case PETSC_OWN_POINTER: *p = link->next; break; /* Remove from inuse list */
      case PETSC_USE_POINTER: break;
      default: SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_INCOMP,"invalid cmode");
      }
      *mylink = link;
      PetscFunctionReturn(0);
    }
  }
  SETERRQ(PetscObjectComm((PetscObject)sf),PETSC_ERR_ARG_WRONGSTATE,"Could not find pack");
  PetscFunctionReturn(0);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20150408/5920b21c/attachment.sig>


More information about the petsc-dev mailing list