always_inline attribute

Thomas Martitz thomas.martitz@student.HTW-Berlin.de
Wed Dec 23 14:39:00 GMT 2009


Am 23.12.2009 14:35, schrieb kum:
> Hi,
> I am using gcc v4.1.0 for mips (host:linux). With -O2 gcc does not
> produce an inline function if the definition of the inline function is
> in a different file than the caller. Am I missing something here?
> Cannot I have inline function defined in different file?
>
> inline int __attribute__((always_inline)) foo()
> {
> // do something;
> return 0;
> }
>
>    


No, you can't. Compiler process each translation unit (=source file) 
separately, so it's not possible to insert code from another translation 
unit.

In your example it will be only inlined in the file it's defined in. 
Additionally a function body is created because the function is not static.

Put the inline in a header file, make it static and #include it from 
each source file you want to call it from.
Best regards.



More information about the Gcc-help mailing list