inline functions

Kövesdi György kgy@deverto.hu
Fri Jul 13 15:53:00 GMT 2007


Thanks, I already got the answer from John <eljay@adobe.com>.

It can be useful for ohers, so here are the details:
The compiler has some limits inside to make functions inline. My source cannot 
be published here because of its complexity, and that was the problem: the 
mentioned class was inherited from other classes, using more inline 
functions. The option "-Winline" gives more information in such cases.
The essence is the option "max-inline-insns-single", which is described in 
details in "man gcc". The inlining limits can be changed this way.
The source code is mentioned in my previous mail "C++ in embedded systems"

Thanks again,
K. Gy.

2007. július 13. 15.46 dátummal jlh ezt írta:
> Kövesdi György wrote:
> > I found that the function other_class::f2() cannot be inlined
>
> I filled the blanks in your example with simple code and f1 as
> well as f2 were inlined into the called of f2 when using -O1.  You
> should provide a complete compilable example of a situation that
> doesn't do what you want.
>
> > Trying to add __attribute__((inline)) the result is a warning
> > message about ignoring this attribute.
>
> I guess it's because if you define a method directly in the class
> body, you implicitely tell the compiler to inline it, thus making
> this attribute redundant.  See [1].  (It still only happens with
> optimization turned on.)
>
> [1] http://www.parashift.com/c++-faq-lite/inline-functions.html#faq-9.8



More information about the Gcc-help mailing list