DWARF: do not emit DW_TAG_variable to materialize DWARF procedures
authorPierre-Marie de Rodat <derodat@adacore.com>
Thu, 18 Aug 2016 14:39:22 +0000 (14:39 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 18 Aug 2016 14:39:22 +0000 (14:39 +0000)
commit80c5ad359f30c86d48a04c080785606a2701ab71
treee55edc4fa8fd327e421894c2c5b542df4808abf6
parent0b224dcf60dd8bd401501178f6118b8455ceeb1f
DWARF: do not emit DW_TAG_variable to materialize DWARF procedures

Hello,

For -gdwarf-3 and newer, the DWARF back-end sometimes generates DWARF
procedures to factorize complex location descriptions.  DWARF procedures
can be materialized as DW_TAG_dwarf_procedure DIEs, but actually any DIE
that can hold a DW_AT_location attribute is also accepted.

Unlike what I thought at some point, the DW_TAG_dwarf_procedure tag was
introduced in the DWARFv3 standard, not the DWARFv4 one, so the back-end
can always emit DW_TAG_dwarf_procedure DIEs, as this simplifies code and
prevents the types pruning pass from missing a DWARF procedure.

Boostrapped and regtested on x86_64-linux: no regression.  Ok to commit?
Thank you in advance!

gcc/

* dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
(new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
-gdwarf-3.
(function_to_dwarf_procedure): Update comment.

From-SVN: r239575
gcc/ChangeLog
gcc/dwarf2out.c