================
@@ -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
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits