- Py_DECREF: Add `do { ... } while (0)' to avoid compiler warnings.
diff --git a/Include/object.h b/Include/object.h
index cfca64f..fb5376a 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -749,11 +749,13 @@
 	((PyObject*)(op))->ob_refcnt++)
 
 #define Py_DECREF(op)					\
-	if (_Py_DEC_REFTOTAL  _Py_REF_DEBUG_COMMA	\
-	    --((PyObject*)(op))->ob_refcnt != 0)		\
-		_Py_CHECK_REFCNT(op)			\
-	else						\
-		_Py_Dealloc((PyObject *)(op))
+	do {						\
+	    if (_Py_DEC_REFTOTAL  _Py_REF_DEBUG_COMMA	\
+		--((PyObject*)(op))->ob_refcnt != 0)	\
+		    _Py_CHECK_REFCNT(op)		\
+	    else					\
+		_Py_Dealloc((PyObject *)(op))		\
+        } while (0)
 
 /* Safely decref `op` and set `op` to NULL, especially useful in tp_clear
  * and tp_dealloc implementatons.
diff --git a/Misc/NEWS b/Misc/NEWS
index db86b51..f254bfd 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -207,6 +207,8 @@
 - Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
   short file names.
 
+- Py_DECREF: Add `do { ... } while (0)' to avoid compiler warnings.
+
 Library
 -------