https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65028
--- Comment #35 from Jan Hubicka <hubicka at ucw dot cz> ---
> propagate_alignment_accross_jump_function seems wrong:
>
> if (cur.known)
> {
> if (!dest_lat->alignment.known)
> {
> dest_lat->alignment = cur;
> return true;
> }
>
> We can't change argument alignment from unknown to know.
> We can only reduce argument alignment. Callee can only
> assume the smallest argument alignment passed down from
> all callers.
Using top/bottom would be probably less confusing here, but looking
into print_all_lattices I think !known represent TOP and BOTTOM
is known & align == 0. So the code above seems OK.
I think it is missing code to actually merge the values. Let me see if I can
repreoduce testcase.
Honza