[Lldb-commits] [lldb] 12ae3cb - [lldb] Assert that CommandResultObject error messages are not empty

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Mon Jun 21 02:44:54 PDT 2021


Author: David Spickett
Date: 2021-06-21T09:44:47Z
New Revision: 12ae3cb7ba5399b99c02e8a73c681192259e188f

URL: https://github.com/llvm/llvm-project/commit/12ae3cb7ba5399b99c02e8a73c681192259e188f
DIFF: https://github.com/llvm/llvm-project/commit/12ae3cb7ba5399b99c02e8a73c681192259e188f.diff

LOG: [lldb] Assert that CommandResultObject error messages are not empty

The intention is now that AppendError/SetError/AppendRawError only
be called with some message to show. This enforces that.

For SetError with a Status and a fallback string first assert
that the Status is a failure Status. Then it calls SetError(StringRef)
which checks the message is valid. (which could be the fallback
or the Status')

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D104525

Added: 
    

Modified: 
    lldb/source/Interpreter/CommandReturnObject.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Interpreter/CommandReturnObject.cpp b/lldb/source/Interpreter/CommandReturnObject.cpp
index 5edd9a3af9968..d0d0ced2de482 100644
--- a/lldb/source/Interpreter/CommandReturnObject.cpp
+++ b/lldb/source/Interpreter/CommandReturnObject.cpp
@@ -99,24 +99,18 @@ void CommandReturnObject::AppendWarning(llvm::StringRef in_string) {
 
 void CommandReturnObject::AppendError(llvm::StringRef in_string) {
   SetStatus(eReturnStatusFailed);
-  if (in_string.empty())
-    return;
+  assert(!in_string.empty() && "Expected a non-empty error message");
   error(GetErrorStream()) << in_string.rtrim() << '\n';
 }
 
 void CommandReturnObject::SetError(const Status &error,
                                    const char *fallback_error_cstr) {
-  const char *error_cstr = error.AsCString();
-  if (error_cstr == nullptr)
-    error_cstr = fallback_error_cstr;
-  SetError(error_cstr);
+  assert(error.Fail() && "Expected a failed Status");
+  SetError(error.AsCString(fallback_error_cstr));
 }
 
 void CommandReturnObject::SetError(llvm::StringRef error_str) {
   SetStatus(eReturnStatusFailed);
-  if (error_str.empty())
-    return;
-
   AppendError(error_str);
 }
 
@@ -125,8 +119,7 @@ void CommandReturnObject::SetError(llvm::StringRef error_str) {
 
 void CommandReturnObject::AppendRawError(llvm::StringRef in_string) {
   SetStatus(eReturnStatusFailed);
-  if (in_string.empty())
-    return;
+  assert(!in_string.empty() && "Expected a non-empty error message");
   GetErrorStream() << in_string;
 }
 


        


More information about the lldb-commits mailing list