CarlosAlbertoEnciso wrote:

Given the test case:
```
class CBaseOne {
  virtual void foo(int &);
};

struct CDerivedOne : CBaseOne {
  void foo(int &);
};

void CDerivedOne::foo(int &) {
}

struct CBaseTwo {
  CDerivedOne *DerivedOne;
};

struct CDerivedTwo : CBaseTwo {
  void bar(int &);
};

void CDerivedTwo::bar(int &j) {
  DerivedOne->foo(j);
}
```
This is the generated DWARF
```
0x00000072:   DW_TAG_subprogram
                DW_AT_specification     (0x00000041 "_ZN11CDerivedOne3fooERi")
                ...

0x00000091:   DW_TAG_structure_type
                DW_AT_name      ("CDerivedTwo")
                ...

0x0000009d:     DW_TAG_subprogram
                  DW_AT_linkage_name    ("_ZN11CDerivedTwo3barERi")
                  DW_AT_name    ("bar")

0x000000c8:   DW_TAG_subprogram
                ...
                DW_AT_specification     (0x0000009d "_ZN11CDerivedTwo3barERi")

0x000000ea:     DW_TAG_call_site
                  DW_AT_call_target     (DW_OP_reg0 RAX)
                  DW_AT_call_tail_call  (true)
                  DW_AT_call_pc (0x0000000000000019)
                  DW_AT_call_origin     (0x00000072 "_ZN11CDerivedOne3fooERi")

```

https://github.com/llvm/llvm-project/pull/167666
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to