Jakub Jelinek <ja...@redhat.com> wrote: > On Wed, Nov 25, 2020 at 09:22:53PM +0100, Stefan Kanthak wrote: >> > As Jakub has already indicated, your change will result in infinite >> > recursion on avr.Ã, I happened to have a cr16 handy and it looks like >> > it'd generate infinite recursion there too. >> >> JFTR: does GCC emit a warning then? If not: why not? > > Why should it. libgcc is something GCC has full control over and can assume > it is written in a way that it can't recurse infinitely, that is one of > libgcc design goals.
Where are these design goals documented? >> Since I neither have an avr nor a cr16 here, and also no TR-440, no S/3x0, >> no Spectra-70, no PDP-11, no VAX, no SPARC, no MIPS, no PowerPC, no MC68k, >> no NSC16xxx and no NSC32xxx any more, GCC only gives me access to the x86 >> code it generates. > > You can always use cross-compilers. There are no cross-compilers available here. Why should I waste time and energy to build cross-compilers for processors I don't use? [...] > As has been said multiple times, trying to optimize routines that are never > called on x86 for x86 According to Andreas Schwab, the 64-bit shift routines are called on 32-bit processors when compiling with -Os! x86 is a 32-bit processor. > is just wasted energy, better invest your time in > functions that are actually ever called. Where is the documentation that names the routines (not) called on the >50 target architectures? And why do you build and ship routines which are never called at all? This is a waste of time, space and energy! Stefan