With current trunk this PR has disappeared. However, with current 4.7 branch I can still reproduce it.
So I wonder what/who fixed the problem -- maybe just as a side effect of some other work -- and if the change is appropriate to be back-ported to 4.7? Thanks for hints; I am not familiar with the front end internals... Johann __int24 is a built-in type in avr backend. Infinite recursion: __int24 add24 (__int24 a) { return a + 0x10000; } Works: __int24 add24 (__int24 a) { return a + 0xffff; } Works: __int24 add24 (__int24 a) { return a + (__int24) 0x10000; } Works: __int24 add24 (__int24 a) { return a ^ 0x10000; }