On Fri, 2017-05-12 20:14:23 +0100, Graham Markall wrote: > Since the combine pass canonicalises shift-add insns using plus and > ashift (as opposed to plus and mult which it previously used to do), it > no longer creates *add_n or *sub_n insns, as the patterns match plus and > mult only. The outcome of this is that some opportunities to generate > add{1,2,3} and sub{1,2,3} instructions are missed. [...] > diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c > index 91c28e7..42730d5 100644 > --- a/gcc/config/arc/arc.c > +++ b/gcc/config/arc/arc.c > @@ -3483,6 +3483,14 @@ arc_print_operand (FILE *file, rtx x, int code) > > return; > > + case 'c': > + if (GET_CODE (x) == CONST_INT) > + fprintf (file, "%d", INTVAL (x) ); > + else > + output_operand_lossage ("invalid operands to %%c code"); > + > + return; > + Build robot found something (see log at http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=704773), seems to be introduced with the above patch fragment: 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 -Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos-configlist_mk/gcc/gcc -I/home/jbglaw/repos-configlist_mk/gcc/gcc/. -I/home/jbglaw/repos-configlist_mk/gcc/gcc/../include -I/home/jbglaw/repos-configlist_mk/gcc/gcc/../libcpp/include -I/opt/cfarm/mpc/include -I/home/jbglaw/repos-configlist_mk/gcc/gcc/../libdecnumber -I/home/jbglaw/repos-configlist_mk/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos-configlist_mk/gcc/gcc/../libbacktrace -o arc.o -MT arc.o -MMD -MP -MF ./.deps/arc.TPo /home/jbglaw/repos-configlist_mk/gcc/gcc/config/arc/arc.c /home/jbglaw/repos-configlist_mk/gcc/gcc/config/arc/arc.c: In function ‘void arc_print_operand(FILE*, rtx, int)’: /home/jbglaw/repos-configlist_mk/gcc/gcc/config/arc/arc.c:3503:41: error: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Werror=format=] fprintf (file, "%d", INTVAL (x) ); ^ cc1plus: all warnings being treated as errors MfG, JBG -- Jan-Benedict Glaw jbglaw@lug-owl.de +49-172-7608481 Signature of: God put me on earth to accomplish a certain number of the second : things. Right now I am so far behind I will never die.