llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Adrian Prantl (adrian-prantl) <details> <summary>Changes</summary> The refactored code did not correctly determine the type of expression errors. rdar://139699028 --- Full diff: https://github.com/llvm/llvm-project/pull/117095.diff 2 Files Affected: - (modified) lldb/source/Utility/Status.cpp (+5-1) - (modified) lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py (+12) ``````````diff diff --git a/lldb/source/Utility/Status.cpp b/lldb/source/Utility/Status.cpp index 1d171c6b6c3746..5757935fb86228 100644 --- a/lldb/source/Utility/Status.cpp +++ b/lldb/source/Utility/Status.cpp @@ -258,7 +258,11 @@ ErrorType Status::GetType() const { // Return the first only. if (result != eErrorTypeInvalid) return; - result = ErrorCodeToErrorType(error.convertToErrorCode()); + if (error.isA<CloneableError>()) + result = static_cast<const CloneableError &>(error).GetErrorType(); + else + result = ErrorCodeToErrorType(error.convertToErrorCode()); + }); return result; } diff --git a/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py b/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py index fac562edf9ece0..c411d632d7a71f 100644 --- a/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py +++ b/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py @@ -184,6 +184,18 @@ def test_source_locations_from_objc_modules(self): # the first argument are probably stable enough that this test can check for them. self.assertIn("void NSLog(NSString *format", value.GetError().GetCString()) + def test_error_type(self): + """Test the error reporting in the API""" + self.build() + + (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( + self, "// Break here", self.main_source_spec + ) + frame = thread.GetFrameAtIndex(0) + value = frame.EvaluateExpression('#error("I am error.")') + error = value.GetError() + self.assertEqual(error.GetType(), lldb.eErrorTypeExpression); + def test_command_expr_sbdata(self): """Test the structured diagnostics data""" self.build() `````````` </details> https://github.com/llvm/llvm-project/pull/117095 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits