https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91710

--- Comment #4 from jbeulich at suse dot com ---
(In reply to Andrew Pinski from comment #3)
> @@ -4908,7 +4908,8 @@ aarch64_function_arg_boundary (machine_mode mode,
> const_tree type)
>    bool abi_break;
>    unsigned int alignment = aarch64_function_arg_alignment (mode, type,
>                                                            &abi_break);
> -  if (abi_break & warn_psabi)
> +
> +  if (alignment >= STACK_BOUNDARY && abi_break & warn_psabi)
>      inform (input_location, "parameter passing for argument of type "
>             "%qT changed in GCC 9.1", type);

Wouldn't this then want to be > PARM_BOUNDARY instead of >= STACK_BOUNDARY? In
#1 you also say "But if it is equal to STACK_BOUNDARY ...", so perhaps even >
PARM_BOUNDARY && <= STACK_BOUNDARY?

I also find it a little odd for the adjustment not be to
aarch64_function_arg_alignment()'s setting of abi_break, but I guess doing so
would be incompatible with some of the other uses of the function.

(Also I guess the opportunity should be taken to convert the slightly
suspicious pre-existing & to &&.)

Reply via email to