Barry Smith wrote: > > Jed, > > Seems ok to me. Feel free to update PETSc. (But I think PETSc style > would detect that your PETSC_ALIGN() macro would be called > PetscMemAlign() or something, we only use caps for macros that are fixed > values, not for macros that like functions.)
Indeed (though there are a few exceptions). Although stdint.h (which contains uintptr_t) is required by C99, I suppose it's likely that it's broken somewhere. On Win64, unsigned long is not sufficient so we need unsigned long long (also required by C99, but not in C++). This is messy enough that we may as well work around it by truncating the pointer into an unsigned, computing the shift, and adding the shift through a (char*) cast. Please speak up if uintptr_t is actually reliable. (I just require a C99 compiler and don't tolerate non-compliance, but PETSc can't do that). Jed -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 261 bytes Desc: OpenPGP digital signature URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20091116/900440f5/attachment.pgp>
