[clang] [llvm] [DebugInfo] Use DW_op_bit_piece for structured bindings of bitfields (PR #85665)
Adrian Prantl via cfe-commits
cfe-commits at lists.llvm.org
Wed May 8 10:25:07 PDT 2024
================
@@ -6178,10 +6178,16 @@ The current supported opcode vocabulary is limited:
the last entry from the second last entry and appends the result to the
expression stack.
- ``DW_OP_plus_uconst, 93`` adds ``93`` to the working expression.
-- ``DW_OP_LLVM_fragment, 16, 8`` specifies the offset and size (``16`` and ``8``
- here, respectively) of the variable fragment from the working expression. Note
- that contrary to DW_OP_bit_piece, the offset is describing the location
- within the described source variable.
+- ``DW_OP_LLVM_fragment, 16, 8`` specifies that the top of the expression stack
+ is a fragment of the source language variable with the given offset and size
+ (``16`` and ``8`` here, respectively). Note that the offset and size are the
+ opposite way around to ``DW_OP_bit_piece``, and the offset is within the
+ source language variable.
+- ``DW_OP_bit_piece, 8, 16`` specifies that the source language variable can be
+ found in the sequence of bits at the given size and offset (``8`` and ``16``
+ here, respectively) within the top of the expression stack. Note that the
+ offset and size are the opposite way around to ``DW_OP_LLVM_fragment``, and the
+ offset is within the LLVM variable (if that's at the top of the stack).
----------------
adrian-prantl wrote:
I guess we need more testcases for the edge cases regardless of which way we decide.
https://github.com/llvm/llvm-project/pull/85665
More information about the cfe-commits
mailing list