Print more detailed warning message on parsing invalid input.

PiperOrigin-RevId: 551941424
diff --git a/fuzztest/domain_core.h b/fuzztest/domain_core.h
index 0b36b6e..cfa4cb1 100644
--- a/fuzztest/domain_core.h
+++ b/fuzztest/domain_core.h
@@ -137,6 +137,8 @@
 
   // Parses corpus value _without validating it_. Validation must be done with
   // ValidateCorpusValue().
+  //
+  // TODO(lszekeres): Return StatusOr<corpus_type>.
   std::optional<corpus_type> ParseCorpus(const internal::IRObject& obj) const {
     return inner_->UntypedParseCorpus(obj);
   }
diff --git a/fuzztest/internal/runtime.cc b/fuzztest/internal/runtime.cc
index 5e54ce7..15812af 100644
--- a/fuzztest/internal/runtime.cc
+++ b/fuzztest/internal/runtime.cc
@@ -294,15 +294,23 @@
 
 std::optional<corpus_type> FuzzTestFuzzerImpl::TryParse(std::string_view data) {
   auto ir_value = IRObject::FromString(data);
-  if (!ir_value) return std::nullopt;
-
+  if (!ir_value) {
+    absl::FPrintF(GetStderr(), "[!] Unexpected file format.\n");
+    return std::nullopt;
+  }
   auto corpus_value = params_domain_->UntypedParseCorpus(*ir_value);
-  if (!corpus_value) return std::nullopt;
+  if (!corpus_value) {
+    absl::FPrintF(GetStderr(), "[!] Unexpected intermediate representation.\n");
+    return std::nullopt;
+  }
 
-  absl::Status valid =
+  absl::Status is_valid =
       params_domain_->UntypedValidateCorpusValue(*corpus_value);
-  if (!valid.ok()) return std::nullopt;
-
+  if (!is_valid.ok()) {
+    absl::FPrintF(GetStderr(), "[!] Invalid corpus value: %s\n",
+                  is_valid.ToString());
+    return std::nullopt;
+  }
   return corpus_value;
 }
 
diff --git a/fuzztest/internal/serialization.cc b/fuzztest/internal/serialization.cc
index 587f5f3..f0160c5 100644
--- a/fuzztest/internal/serialization.cc
+++ b/fuzztest/internal/serialization.cc
@@ -179,6 +179,7 @@
   return out;
 }
 
+// TODO(lszekeres): Return StatusOr<IRObject>.
 std::optional<IRObject> IRObject::FromString(std::string_view str) {
   IRObject object;
   if (ReadToken(str) != kHeader) return std::nullopt;