LGTM

Jin Ma <ji...@linux.alibaba.com> 於 2024年1月29日 週一 17:57 寫道:

> When using  '%ld' to print 'long long int' variable, 'fprintf' will
> produce messy output on a 32-bit system, in an incorrect instruction
> being generated, such as 'th.lwib a1,(a0),-16,4294967295'. And the
> following error occurred during compilation:
>
> Assembler messages:
> Error: improper immediate value (18446744073709551615)
>
> gcc/ChangeLog:
>
>         * config/riscv/thead.cc (th_print_operand_address): Change %ld
>         to %lld.
> ---
>  gcc/config/riscv/thead.cc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gcc/config/riscv/thead.cc b/gcc/config/riscv/thead.cc
> index 2955bc5f8a9..e4b8c37bc28 100644
> --- a/gcc/config/riscv/thead.cc
> +++ b/gcc/config/riscv/thead.cc
> @@ -1141,7 +1141,7 @@ th_print_operand_address (FILE *file, machine_mode
> mode, rtx x)
>        return true;
>
>      case ADDRESS_REG_WB:
> -      fprintf (file, "(%s),%ld,%u", reg_names[REGNO (addr.reg)],
> +      fprintf (file, "(%s),"HOST_WIDE_INT_PRINT_DEC",%u", reg_names[REGNO
> (addr.reg)],
>                INTVAL (addr.offset) >> addr.shift, addr.shift);
>         return true;
>
> --
> 2.17.1
>
>

Reply via email to