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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
That is because most targets define POINTER_SIZE as (condition ? 64 : 32) or
constant while rs6000 as a variable holding it, therefore whether it chooses
unsigned or signed type for it then matters in these cases.
Does:
2021-01-26  Jakub Jelinek  <ja...@redhat.com>

        PR bootstrap/98839
        * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
        in comparison.

--- gcc/dwarf2asm.c.jj  2021-01-26 09:20:19.242499512 +0100
+++ gcc/dwarf2asm.c     2021-01-26 16:33:20.320710684 +0100
@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3.
 void
 dw2_assemble_integer (int size, rtx x)
 {
-  if (size == 2 * DWARF2_ADDR_SIZE && !CONST_SCALAR_INT_P (x))
+  if (size == 2 * (int) DWARF2_ADDR_SIZE && !CONST_SCALAR_INT_P (x))
     {
       /* On 32-bit targets with -gdwarf64, DImode values with
         relocations usually result in assembler errors.  Assume
fix this?

Reply via email to