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