[petsc-dev] crap in next in dm.c

Matthew Knepley knepley at gmail.com
Mon Feb 16 15:47:56 CST 2015


On Mon, Feb 16, 2015 at 3:46 PM, Satish Balay <balay at mcs.anl.gov> wrote:

> On Mon, 16 Feb 2015, Jed Brown wrote:
>
> > Matthew Knepley <knepley at gmail.com> writes:
> >
> > > On Mon, Feb 16, 2015 at 3:13 PM, Satish Balay <balay at mcs.anl.gov>
> wrote:
> > >
> > >> Matt,
> > >>
> > >> There are some clang stuff here..
> > >>
> > >>
> > >>
> ftp://ftp.mcs.anl.gov/pub/petsc/nightlylogs/archive/2015/02/16/filtered-make_next_arch-linux-pkgs-dbg-ftn-interfaces_crank.log
> > >
> > >
> > > That is not my fault. Jed needs to disable to test.
> >
> > Just now back from Singapore...
> >
> > This is tremendously frustrating because the warnings are useful (have
> > detected and continue to detect true bugs, especially with 64-bit
> > indices), but the crappy dependence on const needs to be fixed in Clang.
>
> The following worarround compiles without warnings.
>

Of course, but that also destroys type checking, and I prefer disabling
 the check in configure to cluttering up our source.

   Matt


> Satish
>
> diff --git a/src/dm/interface/dm.c b/src/dm/interface/dm.c
> index 5bfb42c..7c2985e 100644
> --- a/src/dm/interface/dm.c
> +++ b/src/dm/interface/dm.c
> @@ -1689,7 +1689,7 @@ PetscErrorCode  DMGlobalToLocalBegin(DM dm,Vec
> g,InsertMode mode,Vec l)
>      if (mode == ADD_VALUES) SETERRQ1(PetscObjectComm((PetscObject)dm),
> PETSC_ERR_ARG_OUTOFRANGE, "Invalid insertion mode %D", mode);
>      ierr = VecGetArray(l, &lArray);CHKERRQ(ierr);
>      ierr = VecGetArrayRead(g, &gArray);CHKERRQ(ierr);
> -    ierr = PetscSFBcastBegin(sf, MPIU_SCALAR, gArray,
> lArray);CHKERRQ(ierr);
> +    ierr = PetscSFBcastBegin(sf, MPIU_SCALAR, (PetscScalar*) gArray,
> lArray);CHKERRQ(ierr);
>      ierr = VecRestoreArray(l, &lArray);CHKERRQ(ierr);
>      ierr = VecRestoreArrayRead(g, &gArray);CHKERRQ(ierr);
>    } else {
> @@ -1733,7 +1733,7 @@ PetscErrorCode  DMGlobalToLocalEnd(DM dm,Vec
> g,InsertMode mode,Vec l)
>
>      ierr = VecGetArray(l, &lArray);CHKERRQ(ierr);
>      ierr = VecGetArrayRead(g, &gArray);CHKERRQ(ierr);
> -    ierr = PetscSFBcastEnd(sf, MPIU_SCALAR, gArray, lArray);CHKERRQ(ierr);
> +    ierr = PetscSFBcastEnd(sf, MPIU_SCALAR, (PetscScalar*) gArray,
> lArray);CHKERRQ(ierr);
>      ierr = VecRestoreArray(l, &lArray);CHKERRQ(ierr);
>      ierr = VecRestoreArrayRead(g, &gArray);CHKERRQ(ierr);
>    } else {
> @@ -1890,7 +1890,7 @@ PetscErrorCode  DMLocalToGlobalBegin(DM dm,Vec
> l,InsertMode mode,Vec g)
>    if (sf && !isInsert) {
>      ierr = VecGetArrayRead(l, &lArray);CHKERRQ(ierr);
>      ierr = VecGetArray(g, &gArray);CHKERRQ(ierr);
> -    ierr = PetscSFReduceBegin(sf, MPIU_SCALAR, lArray, gArray,
> MPI_SUM);CHKERRQ(ierr);
> +    ierr = PetscSFReduceBegin(sf, MPIU_SCALAR, (PetscScalar*)lArray,
> gArray, MPI_SUM);CHKERRQ(ierr);
>      ierr = VecRestoreArrayRead(l, &lArray);CHKERRQ(ierr);
>      ierr = VecRestoreArray(g, &gArray);CHKERRQ(ierr);
>    } else if (s && isInsert) {
> @@ -1983,7 +1983,7 @@ PetscErrorCode  DMLocalToGlobalEnd(DM dm,Vec
> l,InsertMode mode,Vec g)
>
>      ierr = VecGetArrayRead(l, &lArray);CHKERRQ(ierr);
>      ierr = VecGetArray(g, &gArray);CHKERRQ(ierr);
> -    ierr = PetscSFReduceEnd(sf, MPIU_SCALAR, lArray, gArray,
> MPI_SUM);CHKERRQ(ierr);
> +    ierr = PetscSFReduceEnd(sf, MPIU_SCALAR, (PetscScalar*)lArray,
> gArray, MPI_SUM);CHKERRQ(ierr);
>      ierr = VecRestoreArrayRead(l, &lArray);CHKERRQ(ierr);
>      ierr = VecRestoreArray(g, &gArray);CHKERRQ(ierr);
>    } else if (s && isInsert) {
>
> >
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20150216/ca565333/attachment.html>


More information about the petsc-dev mailing list