[AArch64/GCC] PR64304, miscompilation with -mgeneral-regs-only

Marcus Shawcroft marcus.shawcroft@gmail.com
Mon Jan 19 13:47:00 GMT 2015


On 16 January 2015 at 11:17, Jiong Wang <jiong.wang@arm.com> wrote:

> exactly, thanks, we should use FAIL although DONE and FAIL work the same in
> this scenario.
>
> I checked their definition, FAIL always return the initial value of _val
> which is NULL,
> while DONE stop and return generated insns which for this pattern happen to
> be NULL also. that
> explain why it's not exposed by testing.
>
>
> #define FAIL return (end_sequence (), _val)
> #define DONE return (_val = get_insns (), end_sequence (), _val)

It seems rather odd to me that DONE behaves in this way.  Your patch
is OK with DONE switched to FAIL.  /Marcus



More information about the Gcc-patches mailing list