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

            Bug ID: 84856
           Summary: Bootstrap failure on riscv:  comparison of integer
                    expressions of different signedness
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: belyshev at depni dot sinp.msu.ru
  Target Milestone: ---
            Target: riscv*-*-*

On RISC-V STACK_BOUNDARY and BIGGEST_ALIGNMENT are defined to an unsigned
varible, unlike most other architectures where they are constants, triggering
bootstrap failure with:

../../gcc/gcc/calls.c: In function 'poly_int64 compute_argument_block_size(int,
args_size*, tree, tree, int)':
../../gcc/gcc/calls.c:2201:60: error: comparison of integer expressions of
different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
  if (ACCUMULATE_OUTGOING_ARGS && preferred_stack_boundary > STACK_BOUNDARY)

../../gcc/gcc/final.c: In function 'int
final_addr_vec_align(rtx_jump_table_data*)':
../../gcc/gcc/final.c:521:13: error: comparison of integer expressions of
different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
   if (align > BIGGEST_ALIGNMENT / BITS_PER_UNIT)


The fix would be to change appropriate variables also to unsigned.  (Also may
as well to remove ATTRIBUTE_UNUSED annotations on of
compute_argument_block_size(), which are no longer useful since r44814.

Reply via email to