------- Comment #12 from acme at mandriva dot com 2006-11-16 01:53 ------- (In reply to comment #11) > Subject: Re: DWARF: Not all inline concrete instances are being generated > > > OK, so I'll have to find another way of using the DWARF info to see if a > > inline > > routine, such as __task_rq_lock was used at all in the build or was just > > included in the DWARF info but not referenced anywhere, have to dig more > > into > > the available information... > > > > BTW, if, in these cases, DW_TAG_subroutine is not referenced, what is the > > purpose of it being included? Is there a reason my limited knowledge is not > > realising? > > Well, it is referenced. It did exist in the source, and was inlined. > That's what we output. DW_TAG_subprogram with no PC range is actually > common. > > Because all the inlined instances were optimized away, there are no > DW_TAG_inlined_* entries for them.
/me slaps himself in the face Duh, should have checked this :-) [EMAIL PROTECTED] examples]$ cat a.c static inline int foo(int i) { return i + 10; } int main(void) { } [EMAIL PROTECTED] examples]$ readelf -wi a |grep foo [EMAIL PROTECTED] examples]$ Excellent, only if its not static: [EMAIL PROTECTED] examples]$ cat a.c inline int foo(int i) { return i + 10; } int main(void) { } [EMAIL PROTECTED] examples]$ readelf -wi a |grep foo DW_AT_name : foo [EMAIL PROTECTED] examples]$ And in this case my tool, prefcnt, should warn that this routine, inline or not, is not being used at all and is eligible to go to the dustbin. Thanks a lot for your patience and advise, closing the ticket as INVALID. -- acme at mandriva dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29792