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

Adrian Prantl via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 24 08:49:42 PDT 2017


aprantl added a comment.

In https://reviews.llvm.org/D39119#905051, @grimar wrote:

> 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 these 2 GNU all_call_sites attributes on DWARFVerifier side, am I right ? Should I check something else here ?


@JDevlieghere: could you perhaps help @grimar to figure out what is missing here?


Repository:
  rL LLVM

https://reviews.llvm.org/D39119





More information about the llvm-commits mailing list