> From: Richard Sandiford <richard.sandif...@arm.com> > 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