[PATCH] D39119: [llvm-dwarfdump] - Teach tool about few GNU call_sites constants.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 24 05:19:21 PDT 2017


grimar added a comment.

In https://reviews.llvm.org/D39119#902232, @aprantl wrote:

> Could you also teach the DWARFVerifier about these attributes?


I committed cleanup for testcase (https://reviews.llvm.org/rL316428). Now it passes -verify without errors.

And tried to investigate what can be needed for DWARFVerifier.
This attributes has following forms:

1. DW_AT_GNU_all_call_sites, DW_FORM_flag_present
2. DW_AT_GNU_call_site_value, DW_FORM_exprloc

First one seems does not need anything. DW_FORM_exprloc seems
need some verification, but DW_AT_GNU_call_site_value is already proccessed here (implemented in current patch):
https://github.com/llvm-mirror/llvm/blob/master/lib/DebugInfo/DWARF/DWARFDie.cpp#L238
together with another location expressions. And errors are reported:
https://github.com/llvm-mirror/llvm/blob/master/lib/DebugInfo/DWARF/DWARFExpression.cpp#L259.

Though that happens with -v and not with -verify for some reason. So if I break the expression,
with verbose option I get:

  DW_AT_GNU_call_site_value [DW_FORM_exprloc] (DW_OP_lit4, decoding error. 00 00 00 00 00)

But with -verify it reports no any errors. Is it correct ? I would expect verify to report failture.
Its unrelative to my changes though.

Aside from this issue with DW_FORM_exprloc above, It seems nothing else should be done for
all_call_sites attributes on DWARFVerifier side, am I right ? Should I check something else here ?


Repository:
  rL LLVM

https://reviews.llvm.org/D39119





More information about the llvm-commits mailing list