Demangle: Fix crash-on-invalid demangling of a module name with no underlying entity

GitOrigin-RevId: 6f5ecd089f77e0da9af44bb7211ad1b11ea582d4
diff --git a/src/demangle/ItaniumDemangle.h b/src/demangle/ItaniumDemangle.h
index be2cf88..a434868 100644
--- a/src/demangle/ItaniumDemangle.h
+++ b/src/demangle/ItaniumDemangle.h
@@ -2885,7 +2885,7 @@
     Result = getDerived().parseOperatorName(State);
   }
 
-  if (Module)
+  if (Result != nullptr && Module != nullptr)
     Result = make<ModuleEntity>(Module, Result);
   if (Result != nullptr)
     Result = getDerived().parseAbiTags(Result);
diff --git a/test/test_demangle.pass.cpp b/test/test_demangle.pass.cpp
index a0d9bad..916fda6 100644
--- a/test/test_demangle.pass.cpp
+++ b/test/test_demangle.pass.cpp
@@ -30172,6 +30172,7 @@
     "_ZWDC3FOOEv",
     "_ZGI3Foo",
     "_ZGIW3Foov",
+    "W1x",
 };
 
 const unsigned NI = sizeof(invalid_cases) / sizeof(invalid_cases[0]);