This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH AArch64]Fix test failure for pr84682-2.c
- From: Richard Sandiford <richard dot sandiford at arm dot com>
- To: Joey Ye <joey dot ye dot cc at gmail dot com>
- Cc: kyrylo dot tkachov at foss dot arm dot com, "Bin.Cheng" <amker dot cheng at gmail dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>, James Greenhalgh <James dot Greenhalgh at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Jeff Law <law at redhat dot com>
- Date: Wed, 29 Aug 2018 19:47:36 +0100
- Subject: Re: [PATCH AArch64]Fix test failure for pr84682-2.c
- References: <DB6PR0802MB2504BCFAD63BCAA484B5EE8FE7D70@DB6PR0802MB2504.eurprd08.prod.outlook.com> <5AABAF14.6090003@foss.arm.com> <87d10313qo.fsf@linaro.org> <CAHFci2-iLwXvEieeefPe0O6bgjBrefPwpS6FgfoH1Bztyq2_VQ@mail.gmail.com> <5AFBEA09.7040606@foss.arm.com> <CAL0py25M1h1onsO4swSHrjLtcoR_QaeefGQjqWqEtC3iD3ZtsA@mail.gmail.com>
Joey Ye <joey.ye.cc@gmail.com> writes:
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 07c55b1..9e965ab 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -5674,9 +5674,6 @@ aarch64_classify_address (struct aarch64_address_info *info,
> && (code != POST_INC && code != REG))
> return false;
>
> - gcc_checking_assert (GET_MODE (x) == VOIDmode
> - || SCALAR_INT_MODE_P (GET_MODE (x)));
> -
> switch (code)
> {
> case REG:
> diff --git a/gcc/recog.c b/gcc/recog.c
> index 0a8fa2c..510aba2 100644
> --- a/gcc/recog.c
> +++ b/gcc/recog.c
> @@ -1070,6 +1070,11 @@ general_operand (rtx op, machine_mode mode)
> int
> address_operand (rtx op, machine_mode mode)
> {
> + /* Wrong mode for an address expr. */
> + if (GET_MODE (op) != VOIDmode
> + && ! SCALAR_INT_MODE_P (GET_MODE (op)))
> + return false;
> +
> return memory_address_p (mode, op);
> }
>
The address_operand part is OK, thanks.
I think we should keep the assert in aarch64_classify_address, since
IMO it's a bug for anything else to reach that point.
Richard