Consider the following:
static inline int a() __attribute((always_inline)); static inline int b() __attribute((always_inline));
static inline int b() { a(); } static inline int a() { } int c() { b(); }
This compiles fine at -O2. At -O0 we get the baffling error
sorry, unimplemented: inlining failed in call to 'a': function not considered for inlining
It seems undesirable for -O options to affect which programs will compile.
The obvious thing to do about it is turn on -funit-at-a-time always, but I'm
concerned about the effect on compile speed; has anybody measured it?