This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/37801] New: DWARF output for inlined functions doesn't always use DW_TAG_inlined_subroutine
- From: "jason at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Oct 2008 18:01:39 -0000
- Subject: [Bug debug/37801] New: DWARF output for inlined functions doesn't always use DW_TAG_inlined_subroutine
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
>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