>From https://bugzilla.redhat.com/show_bug.cgi?id=449493
Compiling the following testcase with -O -g -dA, I see that where the functions are inlined into main they properly use DW_TAG_inlined_function, but where they are inlined into the abstract intermediate functions they show up as DW_TAG_lexical_block, which is incorrect. I'm not sure if they should use DW_TAG_inlined_function or be omitted entirely in the abstract debugging info; probably the latter. inline void third(int arg3){ int var3 = arg3; int* a = 0; a[0] = var3; } inline void second(int arg2){ int var2 = arg2; third(var2+1); } inline void first(int arg1){ int var1 = arg1; second(var1+1); } int main(){ int some_int = 1; first(some_int); return 0; } -- Summary: DWARF output for inlined functions doesn't always use DW_TAG_inlined_subroutine Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jason at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37801