From: Alan Modra Date: Tue, 14 Dec 2021 11:36:29 +0000 (+1030) Subject: loongarch64 build failure on 32-bit host X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a078dd9ce81537fa01356c12283bf14f29b36439;p=binutils-gdb.git loongarch64 build failure on 32-bit host gas/config/tc-loongarch.c: In function ‘loongarch_args_parser_can_match_arg_helper’: gas/config/tc-loongarch.c:661:13: error: cast from pointer to integer of different size [-Werror=pointer -to-int-cast] 661 | imm = (offsetT) str_hash_find (r_htab, arg); | ^ Cast it to the correct size int, relying on normal integer promotions if offsetT is larger than a pointer. * config/tc-loongarch.c (loongarch_args_parser_can_match_arg_helper): Cast return from str_hash_find to intptr_t, not offsetT. --- diff --git a/gas/config/tc-loongarch.c b/gas/config/tc-loongarch.c index f7235a18864..7607d1da501 100644 --- a/gas/config/tc-loongarch.c +++ b/gas/config/tc-loongarch.c @@ -658,12 +658,12 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2, } break; case 'r': - imm = (offsetT) str_hash_find (r_htab, arg); + imm = (intptr_t) str_hash_find (r_htab, arg); ip->match_now = 0 < imm; ret = imm - 1; break; case 'f': - imm = (offsetT) str_hash_find (f_htab, arg); + imm = (intptr_t) str_hash_find (f_htab, arg); ip->match_now = 0 < imm; ret = imm - 1; break; @@ -671,21 +671,21 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2, switch (esc_ch2) { case 'r': - imm = (offsetT) str_hash_find (cr_htab, arg); + imm = (intptr_t) str_hash_find (cr_htab, arg); break; default: - imm = (offsetT) str_hash_find (c_htab, arg); + imm = (intptr_t) str_hash_find (c_htab, arg); } ip->match_now = 0 < imm; ret = imm - 1; break; case 'v': - imm = (offsetT) str_hash_find (v_htab, arg); + imm = (intptr_t) str_hash_find (v_htab, arg); ip->match_now = 0 < imm; ret = imm - 1; break; case 'x': - imm = (offsetT) str_hash_find (x_htab, arg); + imm = (intptr_t) str_hash_find (x_htab, arg); ip->match_now = 0 < imm; ret = imm - 1; break;