Note the new debug assertion in PyObject_Str
diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst
index be6d798..78c385e 100644
--- a/Doc/c-api/object.rst
+++ b/Doc/c-api/object.rst
@@ -170,6 +170,10 @@
    Python expression ``str(o)``.  Called by the :func:`str` built-in function
    and, therefore, by the :func:`print` function.
 
+   .. versionchanged:: 3.4
+      This function now includes a debug assertion that ensures it does not
+      silently discard an active exception.
+
 .. c:function:: PyObject* PyObject_Bytes(PyObject *o)
 
    .. index:: builtin: bytes
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
index 91fb03a..5da98da 100644
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -1708,6 +1708,13 @@
 Changes in the C API
 --------------------
 
+* :c:func:`PyObject_Str` now includes a debug assertion that ensures it will
+  no longer silently discard currently active exceptions. In cases where
+  discarding the active exception is expected and desired (for example,
+  because it has already been saved locally with :c:func:`PyErr_Fetch`), an
+  explicit :c:func:`PyErr_Clear` call will be needed to avoid triggering the
+  assertion.
+
 * :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg**
   argument is not set. Previously only ``NULL`` was returned with no exception
   set.