[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