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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2010-05-01 at 10:01 -0700, Ian Lance Taylor wrote:
> Jörg Leis <joerg@xxxxxxxxxxxxx> 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 of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux