>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

Reply via email to