Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: POINTER_ALIGNED_P (was: Re: CVS commit: src/sys)
On Tue, Feb 16, 2021 at 17:53:09 -0500, Christos Zoulas wrote:
> In this case "type" is a struct and we have __alignof() to handle
> it, but does this give the right answer?
>
> Also ALIGNED_POINTER is not conditional to __NO_STRICT_ALIGNMENT and
> can be overriden (the opposite goes for POINTER_ALIGNED_P) I am all
> for having one macro, but how can we satisfy all the different
> semantics?
Well, it was you who did the definion of ALIGNED_POINTER centralized
and overridable :)
revision 1.400
date: 2012-01-25 00:03:36 +0400; author: christos; state: Exp; lines: +26 -1;
Use and define ALIGN() ALIGN_POINTER() and STACK_ALIGN() consistently,
and avoid definining them in 10 different places if not needed.
ALIGNED_POINTER is overriden on x86 to be always true. Surprisingly
it is not overriden for m68k and vax that are __NO_STRICT_ALIGNMENT.
That is most likely an oversight, but that will probably require some
cvs archaeology to confirm. Some uses of ALIGNED_POINTER are inside
an __NO_STRICT_ALIGNMENT #ifdef.
We don't even seem to be sure about its semantics, as far as I can
tell (see bus space comments in my mail).
That's even more of a reason to stop doing aimless random changes
without getting some kind of understanding first. The last thing we
need is ALIGNED_POINTER and POINTER_ALIGNED macros with slighly
different semantics both of which are counter-intuitive to begin with
(and riastradh@ even had to add a verbose comment for that).
-uwe
Home |
Main Index |
Thread Index |
Old Index