On Fri, Apr 20, 2012 at 8:41 PM, Jay Foad <jay.f...@gmail.com> wrote:
> On 20 April 2012 16:54, Martin Jambor <mjam...@suse.cz> wrote:
>> two days ago I talked to Richi on IRC about the functions to determine
>> the expected alignment of objects and pointers we have and he
>> suggested that get_object_alignment_1 and get_pointer_alignment_1
>> should return whether the alignment is actually known
>
> Can you explain how returning "unknown" is different from returning
> some minimal known alignment? Comments like:
>
>> ! /* Compute values M and N such that M divides (address of EXP - N) and
>> !    such that N < M.  Store N in *BITPOSP and return M.
>
> suggest that M=1, N=0 is always a valid conservative thing to return.
>
> If there is a difference, the comment should explain what it means.

Well.  The difference is for 2nd level code such as get_object_or_type_alignment
which should not override explicitely known misalginment (the user typed
*(int *)( (char *)&intvar + 1)) with alignment derived from types (the
C standard
says that code invokes undefined behavior, but doing what the user means
is certainly what we can do and what people expect from a QOI point of view).

Richard.

> Thanks,
> Jay.

Reply via email to