[all-commits] [llvm/llvm-project] a0a3a9: [DebugInfo] Fix multi-byte entry values in call si...

David via All-commits all-commits at lists.llvm.org
Wed Mar 18 05:23:39 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a0a3a9c5a83192254eae442654e65dd3eb724713
      https://github.com/llvm/llvm-project/commit/a0a3a9c5a83192254eae442654e65dd3eb724713
  Author: David Stenberg <david.stenberg at ericsson.com>
  Date:   2020-03-18 (Wed, 18 Mar 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/DIE.h
    A llvm/test/DebugInfo/AArch64/dbgcall-site-float-entry-value.ll

  Log Message:
  -----------
  [DebugInfo] Fix multi-byte entry values in call site values

Summary:
In D67768/D67492 I added support for entry values having blocks larger
than one byte, but I now noticed that the DIE implementation I added there
was broken. The takeNodes() function, that moves the entry value block
from a temporary buffer to the output buffer, would destroy the input
iterator when transferring the first node, meaning that only that node
was moved.

In practice, this meant that when emitting a call site value using a
DW_OP_entry_value operation with a DWARF register number larger than 31,
that multi-byte DW_OP_regx expression would be truncated.

Reviewers: djtodoro, aprantl, vsk

Reviewed By: djtodoro

Subscribers: llvm-commits

Tags: #debug-info, #llvm

Differential Revision: https://reviews.llvm.org/D76279




More information about the All-commits mailing list