> From: Richard Sandiford <[email protected]>
> Date: Wed, 11 Sep 2019 21:02:26 +0200
> This series of patches introduces some classes and helpers for handling
> multiple ABIs in the same translation unit. At the moment "ABI" maans
> specifically the choice of call-clobbered registers
[...]
> The series also makes -fipa-ra work for partially-clobbered registers too.
[...]
My autotester for cris-elf complains about a build-breaking
commit in the revision range (working:breaking) 276299:276359
and a glance at those commits and the error message says the
cause is likely one of your commits. Relevant part of
build-log, hopefully sufficient:
-----------------------
g++ -fno-PIE -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE
-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual
-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-fno-common -DHAVE_CONFIG_H -I. -I. -I/x/hpautotest-gcc1/gcc/gcc
-I/x/hpautotest-gcc1/gcc/gcc/. -I/x/hpautotest-gcc1/gcc/gcc/../include
-I/x/hpautotest-gcc1/gcc/gcc/../libcpp/include
-I/x/hpautotest-gcc1/cris-elf/gccobj/./gmp -I/x/hpautotest-gcc1/gcc/gmp
-I/x/hpautotest-gcc1/cris-elf/gccobj/./mpfr/src
-I/x/hpautotest-gcc1/gcc/mpfr/src -I/x/hpautotest-gcc1/gcc/mpc/src
-I/x/hpautotest-gcc1/gcc/gcc/../libdecnumber
-I/x/hpautotest-gcc1/gcc/gcc/../libdecnumber/dpd -I../libdecnumber
-I/x/hpautotest-gcc1/gcc/gcc/../libbacktrace -o caller-save.o -MT
caller-save.o -MMD -MP -MF ./.deps/caller-save.TPo
/x/hpautotest-gcc1/gcc/gcc/caller-save.c
In file included from /x/hpautotest-gcc1/gcc/gcc/caller-save.c:31:0:
/x/hpautotest-gcc1/gcc/gcc/caller-save.c: In function 'void init_caller_save()':
/x/hpautotest-gcc1/gcc/gcc/regs.h:195:44: error: cannot convert 'bool' to
'const predefined_function_abi*' for argument '3' to 'machine_mode
choose_hard_reg_mode(unsigned int, unsigned int, const
predefined_function_abi*)'
choose_hard_reg_mode (REGNO, NREGS, false)
^
/x/hpautotest-gcc1/gcc/gcc/caller-save.c:203:26: note: in expansion of macro
'HARD_REGNO_CALLER_SAVE_MODE'
regno_save_mode[i][j] = HARD_REGNO_CALLER_SAVE_MODE (i, j, VOIDmode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/x/hpautotest-gcc1/gcc/gcc/caller-save.c: In function 'void
save_call_clobbered_regs()':
/x/hpautotest-gcc1/gcc/gcc/regs.h:195:44: error: cannot convert 'bool' to
'const predefined_function_abi*' for argument '3' to 'machine_mode
choose_hard_reg_mode(unsigned int, unsigned int, const
predefined_function_abi*)'
choose_hard_reg_mode (REGNO, NREGS, false)
^
/x/hpautotest-gcc1/gcc/gcc/caller-save.c:821:12: note: in expansion of macro
'HARD_REGNO_CALLER_SAVE_MODE'
mode = HARD_REGNO_CALLER_SAVE_MODE
^~~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:1117: recipe for target 'caller-save.o' failed
-----------------------
> Also tested by compiling at least one target per CPU directory and
> checking for no new warnings.
(Hmm... So maybe a host gcc issue?)
My host is x86-64 Debian 9, i.e. gcc-6.3.0.
brgds, H-P