This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

LTO and C99 inline functions broken (was: Type-generic macros with C)


On Sat, 2010-05-01 at 10:01 -0700, Ian Lance Taylor wrote:
> JÃrg Leis <joerg@joergleis.com> writes:
> 
> > A related question: Is it expected that in C99-mode GCC might not be
> > able to compile a program because of the use of an inline function? I
> > defined an inline function like this:
> >
> > inline int do()
> > {
> > 	// ...
> > }
> 
> C99 mode should support inline functions just fine.  If you are having
> trouble, show us the complete test case and tell us what happens.
> Also the version of gcc makes a difference; full support for C99
> inline functions was first in gcc 4.3.
> 
> Ian

The problem seemed to have gone for a while, but I have a test case now:

	inline int f()
	{
	    return 5;
	}

	extern inline int f();

With

	gcc -std=c99 -c test.c

it compiles just fine and emits the an externally callable definition
of f. However, with LTO,

	gcc -std=c99 -flto -c test.c

the function f is not emitted. The GCC version is "gcc (GCC) 4.5.0
20100610 (prerelease)".

JÃrg


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]