Revert "[lldb/DWARF] Fix evaluator crash when accessing empty stack."
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Tue, 31 Mar 2020 15:44:17 +0000 (17:44 +0200)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Tue, 31 Mar 2020 15:44:17 +0000 (17:44 +0200)
This reverts commit e26eece1e2e7d7e6fbadb1207afef9b6353b5330.

lldb/source/Expression/DWARFExpression.cpp
lldb/unittests/Expression/DWARFExpressionTest.cpp

index 04fbfcc..7f12d06 100644 (file)
@@ -2318,12 +2318,6 @@ bool DWARFExpression::Evaluate(
     // rather is a constant value.  The value from the top of the stack is the
     // value to be used.  This is the actual object value and not the location.
     case DW_OP_stack_value:
-      if (stack.empty()) {
-        if (error_ptr)
-          error_ptr->SetErrorString(
-              "Expression stack needs at least 1 item for DW_OP_stack_value.");
-        return false;
-      }
       stack.back().SetValueType(Value::eValueTypeScalar);
       break;
 
index 4c42819..64755a9 100644 (file)
@@ -234,10 +234,6 @@ TEST(DWARFExpression, DW_OP_convert) {
       llvm::Failed());
 }
 
-TEST(DWARFExpression, DW_OP_stack_value) {
-  EXPECT_THAT_EXPECTED(Evaluate({DW_OP_stack_value}), llvm::Failed());
-}
-
 TEST(DWARFExpression, DW_OP_piece) {
   EXPECT_THAT_EXPECTED(Evaluate({DW_OP_const2u, 0x11, 0x22, DW_OP_piece, 2,
                                  DW_OP_const2u, 0x33, 0x44, DW_OP_piece, 2}),