On Fri, Jun 3, 2011 at 20:27, Barry Smith <bsmith at mcs.anl.gov> wrote:
> Actually aside from the MPI calls it looks like the big problems are: > > #elif defined(PETSC_HAVE_ISINF) && defined(PETSC_HAVE_ISNAN) && > !defined(_GLIBCXX_CMATH) > PETSC_STATIC_INLINE PetscErrorCode PetscIsInfOrNanScalar(PetscScalar a) { > return isinf(PetscAbsScalar(a)) || isnan(PetscAbsScalar(a)); > } > > which wants floats, not doubles. I tried casting to float and it didn't > help so not sure how to fix. > I don't understand this issue, but it has to do with PetscAbsScalar() operating on undetermined types. I made PetscAbsScalar() an inline function so its argument and return type is specified and this issue goes away. > And > > > #if defined(PETSC_HAVE_BUILTIN_EXPECT) > # define PetscUnlikely(cond) __builtin_expect(!!(cond),0) > # define PetscLikely(cond) __builtin_expect(!!(cond),1) > > which I also didn't know how to fix. > I didn't see this using gcc-4.6 or clang-2.9. Clang also has -Wshorten-64-to-32 which does exactly what you want. I just configured ./configure --with-mpi-dir=~/usr/mpich-clang --with-fortran=0 --with-shared-libraries --with-64-bit-indices --CFLAGS='-Wall -Wextra -Wconversion -Wno-unused-parameter -Wno-sign-conversion' and almost all the warnings are MPI-related. There are still a lot of warnings, but they are relevant. I like Clang's warnings much more, but GCC warnings should be relevant here too. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20110604/f14d7710/attachment.html>