-malign-double
Barry Smith
bsmith at mcs.anl.gov
Mon Nov 16 15:11:53 CST 2009
What about have configure look for uintptr_t if it does not exist
then have configure check if unsigned long long is large enough, if
not try size_t otherwise barf?
Barry
On Nov 16, 2009, at 1:55 PM, Jed Brown wrote:
> 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
>
More information about the petsc-dev
mailing list