[Mlir-commits] [lldb] [llvm] [mlir] [DebugInfo] Add symbolic branches to DIExpression (PR #210850)

Scott Linder llvmlistbot at llvm.org
Wed Aug 19 08:56:14 PDT 2026


================
@@ -4463,6 +4570,48 @@ TEST_F(DIExpressionTest, isValid) {
   EXPECT_INVALID(dwarf::DW_OP_LLVM_arg, 0, dwarf::DW_OP_plus_uconst, 5,
                  dwarf::DW_OP_LLVM_entry_value, 1);
   EXPECT_INVALID(dwarf::DW_OP_LLVM_arg, 1, dwarf::DW_OP_LLVM_entry_value, 1);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_label);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_bra);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_skip);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_label, 1, dwarf::DW_OP_LLVM_label, 1);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_bra, 1);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_skip, 1);
+  EXPECT_INVALID(dwarf::DW_OP_bra, 0);
+  EXPECT_INVALID(dwarf::DW_OP_skip, 0);
+  EXPECT_INVALID(dwarf::DW_OP_reg0, dwarf::DW_OP_bra, 0);
+  EXPECT_INVALID(dwarf::DW_OP_reg0, dwarf::DW_OP_skip, 0);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_arg, 0, dwarf::DW_OP_LLVM_label, 1);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_implicit_pointer, dwarf::DW_OP_LLVM_label,
+                 1);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_label, 1, dwarf::DW_OP_LLVM_tag_offset, 0);
+  // Converts and other stack ops can appear around labels and branches.
+  EXPECT_VALID(dwarf::DW_OP_LLVM_convert, 32, dwarf::DW_ATE_signed,
+               dwarf::DW_OP_LLVM_label, 1);
+  EXPECT_VALID(dwarf::DW_OP_LLVM_convert, 32, dwarf::DW_ATE_signed,
+               dwarf::DW_OP_LLVM_skip, 7, dwarf::DW_OP_LLVM_label, 7);
+  EXPECT_VALID(dwarf::DW_OP_LLVM_skip, 1, dwarf::DW_OP_LLVM_convert, 32,
+               dwarf::DW_ATE_signed, dwarf::DW_OP_LLVM_convert, 64,
+               dwarf::DW_ATE_signed, dwarf::DW_OP_LLVM_label, 1);
+  EXPECT_VALID(dwarf::DW_OP_LLVM_convert, 32, dwarf::DW_ATE_signed,
+               dwarf::DW_OP_dup, dwarf::DW_OP_LLVM_bra, 1,
+               dwarf::DW_OP_LLVM_convert, 32, dwarf::DW_ATE_signed,
+               dwarf::DW_OP_LLVM_label, 1);
+  EXPECT_INVALID(dwarf::DW_OP_stack_value, dwarf::DW_OP_LLVM_label, 1);
+  EXPECT_INVALID(dwarf::DW_OP_LLVM_fragment, 0, 32, dwarf::DW_OP_LLVM_label, 1);
+  // reg0 and entry_value normally end validation early, but they must not hide
----------------
slinder1 wrote:

Taking a look at https://github.com/llvm/llvm-project/pull/214057, it seems like maybe this is just a case of what-should-be-stacked PRs being reviewed independently, and comments/tests lingering between them?

https://github.com/llvm/llvm-project/pull/210850


More information about the Mlir-commits mailing list