On Wed, 8 Oct 2003, Alex Vinokur wrote: > "Igor Pechtchanski" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > > On Wed, 8 Oct 2003, Alex Vinokur wrote: > > > > > "Corinna Vinschen" wrote in message news:[EMAIL PROTECTED] > > > > On Wed, Oct 08, 2003 at 11:19:27AM +0200, Alex Vinokur wrote: > > > > > How can one know if a function requested to be inlined is actually > > > > > inlined? > > > > > > > > A look into the assembler output generated by gcc/g++ will show you. > > > > > > How can one conclude if a function is actually inlined on the basis > > > working with the nm and objdump utilities? For instance, are 'the foo2() > > > and foo3() function from my original posting' actually inlined? > > > > The general rule of thumb is: if there's a call to a function, it's not > > inlined. > > > > > $ grep foo t.s > > > > > > .globl __ZN3Foo4foo1Ev > > > .def __ZN3Foo4foo1Ev; .scl 2; .type 32; .endef > > > __ZN3Foo4foo1Ev: > > > call __ZN3Foo4foo1Ev > > > call __ZN3Foo4foo2Ev > > > call __ZN3Foo4foo3Ev > > ^^^^^^^^^^^^^^^^^^^^ > > FWIW, it doesn't look like they are inlined. > > On the other hand we don't see > * call foo2() > and > * call foo3() > here : > > $ objdump -CS t.o | grep foo ^^^ s/foo/call/?
> 1a: e8 00 00 00 00 call 1f <main+0x19> > 1f: e8 00 00 00 00 call 24 <main+0x1e> > 2a: e8 d1 ff ff ff call 0 <Foo::foo1()> > 35: e8 00 00 00 00 call 3a <main+0x34> > 40: e8 00 00 00 00 call 45 <main+0x3f> Yes, apparently the .s file is not the final assembly output -- some transformations do happen between that and the object file. So, look at the output of objdump and see if there are calls to those functions. One thing to note is that in gcc (as in many other compilers) inlining can happen at different levels. What you're probably seeing here, IMO, is a peephole optimization that inlines any empty functions, rather than gcc considering the 'inline' keyword. So, to answer your original question, I don't think the 'inline' keyword influenced the final binary, but the functions did get inlined by some other mechanism. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ [EMAIL PROTECTED] ZZZzz /,`.-'`' -. ;-;;,_ [EMAIL PROTECTED] |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D. '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "I have since come to realize that being between your mentor and his route to the bathroom is a major career booster." -- Patrick Naughton -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/