Enable nodiscard for upb

PiperOrigin-RevId: 902831418
diff --git a/upb/message/compare_fuzz_test.cc b/upb/message/compare_fuzz_test.cc
index 04fe692..ecb768b 100644
--- a/upb/message/compare_fuzz_test.cc
+++ b/upb/message/compare_fuzz_test.cc
@@ -16,38 +16,25 @@
 namespace upb {
 namespace {
 
+static void CheckExtRegStatus(upb_ExtensionRegistryStatus status) {
+  if (status == kUpb_ExtensionRegistryStatus_OutOfMemory) {
+    absl::ThrowStdBadAlloc();
+  } else {
+    ASSERT_EQ(status, kUpb_ExtensionRegistryStatus_Ok);
+  }
+}
 const upb_ExtensionRegistry* CreateTestExtensionRegistry(upb_Arena* arena) {
   upb_ExtensionRegistry* ext_registry = upb_ExtensionRegistry_New(arena);
-  if (upb_ExtensionRegistry_Add(ext_registry,
-                                upb_test_ModelExtension1_model_ext_ext) !=
-      kUpb_ExtensionRegistryStatus_Ok) {
-    absl::ThrowStdBadAlloc();
-  }
-  if (upb_ExtensionRegistry_Add(ext_registry,
-                                upb_test_ModelExtension2_model_ext_ext) !=
-      kUpb_ExtensionRegistryStatus_Ok) {
-    absl::ThrowStdBadAlloc();
-  }
-  if (upb_ExtensionRegistry_Add(ext_registry,
-                                upb_test_ModelExtension2_model_ext_2_ext) !=
-      kUpb_ExtensionRegistryStatus_Ok) {
-    absl::ThrowStdBadAlloc();
-  }
-  if (upb_ExtensionRegistry_Add(ext_registry,
-                                upb_test_ModelExtension2_model_ext_3_ext) !=
-      kUpb_ExtensionRegistryStatus_Ok) {
-    absl::ThrowStdBadAlloc();
-  }
-  if (upb_ExtensionRegistry_Add(ext_registry,
-                                upb_test_ModelExtension2_model_ext_4_ext) !=
-      kUpb_ExtensionRegistryStatus_Ok) {
-    absl::ThrowStdBadAlloc();
-  }
-  if (upb_ExtensionRegistry_Add(ext_registry,
-                                upb_test_ModelExtension2_model_ext_5_ext) !=
-      kUpb_ExtensionRegistryStatus_Ok) {
-    absl::ThrowStdBadAlloc();
-  }
+  CheckExtRegStatus(upb_ExtensionRegistry_Add(
+      ext_registry, upb_test_ModelExtension1_model_ext_ext));
+  CheckExtRegStatus(upb_ExtensionRegistry_Add(
+      ext_registry, upb_test_ModelExtension2_model_ext_2_ext));
+  CheckExtRegStatus(upb_ExtensionRegistry_Add(
+      ext_registry, upb_test_ModelExtension2_model_ext_3_ext));
+  CheckExtRegStatus(upb_ExtensionRegistry_Add(
+      ext_registry, upb_test_ModelExtension2_model_ext_4_ext));
+  CheckExtRegStatus(upb_ExtensionRegistry_Add(
+      ext_registry, upb_test_ModelExtension2_model_ext_5_ext));
   return ext_registry;
 }
 
diff --git a/upb/message/unknown_fields_test.cc b/upb/message/unknown_fields_test.cc
index 5c0b8b3..7895511 100644
--- a/upb/message/unknown_fields_test.cc
+++ b/upb/message/unknown_fields_test.cc
@@ -311,8 +311,8 @@
   // Add a raw unknown field string view
   const char raw_bytes[] =
       "\x08\x96\x01";  // tag 1 (field 1, varint), value 150
-  UPB_PRIVATE(_upb_Message_AddUnknown)(UPB_UPCAST(msg), raw_bytes, 3, arena,
-                                       kUpb_AddUnknown_Copy);
+  ASSERT_TRUE(UPB_PRIVATE(_upb_Message_AddUnknown)(
+      UPB_UPCAST(msg), raw_bytes, 3, arena, kUpb_AddUnknown_Copy));
 
   // Add non-canonical extension
   upb_test_ModelExtension2* extension2 = upb_test_ModelExtension2_new(arena);
diff --git a/upb/port/def.inc b/upb/port/def.inc
index 9d83c8a..8052a48 100644
--- a/upb/port/def.inc
+++ b/upb/port/def.inc
@@ -308,12 +308,11 @@
 #define UPB_NODEREF
 #endif
 
-// Will be defined properly once call sites are updated
-#if false && UPB_HAS_C_ATTRIBUTE(nodiscard)
+#if UPB_HAS_C_ATTRIBUTE(nodiscard)
 #define UPB_NODISCARD [[nodiscard]]
-#elif false && UPB_HAS_ATTRIBUTE(warn_unused_result)
+#elif UPB_HAS_ATTRIBUTE(warn_unused_result)
 #define UPB_NODISCARD __attribute__((warn_unused_result))
-#elif false && UPB_HAS_CPP_ATTRIBUTE(nodiscard)
+#elif UPB_HAS_CPP_ATTRIBUTE(nodiscard)
 #define UPB_NODISCARD [[nodiscard]]
 #else
 #define UPB_NODISCARD