[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
Tue Mar 19 14:52:10 PDT 2024
================
@@ -8,8 +8,8 @@ struct S0 {
// CHECK-LABEL: define dso_local void @_Z3fS0v
// CHECK: alloca %struct.S0, align 4
// CHECK-NEXT: [[TMP0:%.*]] = alloca %struct.S0, align 4
-// CHECK: call void @llvm.dbg.declare(metadata ptr [[TMP0]], metadata [[S0_A:![0-9]+]], metadata !DIExpression())
-// CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[TMP0]], metadata [[S0_B:![0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 2))
+// CHECK: call void @llvm.dbg.declare(metadata ptr [[TMP0]], metadata [[S0_A:![0-9]+]], metadata !DIExpression(DW_OP_bit_piece, 16, 0))
----------------
adrian-prantl wrote:
So we could add DW_OP_bit_piece to LLVM, or we could emit
```
!DIExpression()
!DIExpression(DW_OP_shr 8)
```
Which, I believe, would be supported by LLVM today without any modifications?
https://github.com/llvm/llvm-project/pull/85665
More information about the cfe-commits
mailing list