Issue #12467: warnings: fix a race condition if a warning is emitted at
shutdown, if globals()['__file__'] is None.
diff --git a/Python/_warnings.c b/Python/_warnings.c
index a797887..07fd683 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -496,7 +496,7 @@
 
     /* Setup filename. */
     *filename = PyDict_GetItemString(globals, "__file__");
-    if (*filename != NULL) {
+    if (*filename != NULL && PyUnicode_Check(*filename)) {
         Py_ssize_t len = PyUnicode_GetSize(*filename);
         Py_UNICODE *unicode = PyUnicode_AS_UNICODE(*filename);