pw_status: Enforce [[nodiscard]] on pw::Status in upstream Pigweed

- Enable the [[nodiscard]] flag for the pw_strict_* toolchains.
- Check unused Status or call IgnoreError() and flag with pwbug/387.

Change-Id: Ibef43c09b29a803bc3be17f81e13639d5f908cb2
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/77561
Reviewed-by: Alexei Frolov <frolv@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
diff --git a/pw_file/flat_file_system.cc b/pw_file/flat_file_system.cc
index ea24478..0d822dd 100644
--- a/pw_file/flat_file_system.cc
+++ b/pw_file/flat_file_system.cc
@@ -45,11 +45,13 @@
   {
     pw::file::Path::StreamEncoder encoder = output_encoder.GetPathsEncoder();
 
-    encoder.WritePath(reinterpret_cast<const char*>(file_name_buffer_.data()),
-                      sws.size());
-    encoder.WriteSizeBytes(entry.SizeBytes());
-    encoder.WritePermissions(entry.Permissions());
-    encoder.WriteFileId(entry.FileId());
+    encoder
+        .WritePath(reinterpret_cast<const char*>(file_name_buffer_.data()),
+                   sws.size())
+        .IgnoreError();
+    encoder.WriteSizeBytes(entry.SizeBytes()).IgnoreError();
+    encoder.WritePermissions(entry.Permissions()).IgnoreError();
+    encoder.WriteFileId(entry.FileId()).IgnoreError();
   }
   return output_encoder.status();
 }
@@ -70,11 +72,13 @@
 
     Status write_status = writer.Write(encoder);
     if (!write_status.ok()) {
-      writer.Finish(write_status);
+      writer.Finish(write_status)
+          .IgnoreError();  // TODO(pwbug/387): Handle Status properly
       return;
     }
   }
-  writer.Finish(OkStatus());
+  writer.Finish(OkStatus())
+      .IgnoreError();  // TODO(pwbug/387): Handle Status properly
 }
 
 void FlatFileSystemService::List(ConstByteSpan request,
@@ -90,25 +94,29 @@
     std::string_view file_name_view;
     if (!decoder.ReadString(&file_name_view).ok() ||
         file_name_view.length() == 0) {
-      writer.Finish(Status::DataLoss());
+      writer.Finish(Status::DataLoss())
+          .IgnoreError();  // TODO(pwbug/387): Handle Status properly
       return;
     }
 
     // Find and enumerate the file requested.
     Result<Entry*> result = FindFile(file_name_view);
     if (!result.ok()) {
-      writer.Finish(result.status());
+      writer.Finish(result.status())
+          .IgnoreError();  // TODO(pwbug/387): Handle Status properly
       return;
     }
 
     pw::file::ListResponse::MemoryEncoder encoder(encoding_buffer_);
     Status proto_encode_status = EnumerateFile(*result.value(), encoder);
     if (!proto_encode_status.ok()) {
-      writer.Finish(proto_encode_status);
+      writer.Finish(proto_encode_status)
+          .IgnoreError();  // TODO(pwbug/387): Handle Status properly
       return;
     }
 
-    writer.Finish(writer.Write(encoder));
+    writer.Finish(writer.Write(encoder))
+        .IgnoreError();  // TODO(pwbug/387): Handle Status properly
     return;
   }