diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst
new file mode 100644
index 0000000..4d55b89
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst
@@ -0,0 +1 @@
+Fix the warning messages for Python/ast_unparse.c. Patch by Stéphane Wirtel
diff --git a/Python/ast_unparse.c b/Python/ast_unparse.c
index ef9e948..1345271 100644
--- a/Python/ast_unparse.c
+++ b/Python/ast_unparse.c
@@ -20,7 +20,7 @@
 static int
 append_charp(_PyUnicodeWriter *writer, const char *charp)
 {
-        return _PyUnicodeWriter_WriteASCIIString(writer, charp, -1);
+    return _PyUnicodeWriter_WriteASCIIString(writer, charp, -1);
 }
 
 static int
@@ -100,6 +100,8 @@
     case BitAnd: op = " & "; break;
     case FloorDiv: op = " // "; break;
     case Pow: op = " ** "; break;
+    default:
+        Py_UNREACHABLE();
     }
 
     if (-1 == append_charp(writer, op)) {
@@ -127,6 +129,8 @@
     case Not: op = "not "; break;
     case UAdd: op = "+"; break;
     case USub: op = "-"; break;
+    default:
+        Py_UNREACHABLE();
     }
 
     if (-1 == append_charp(writer, op)) {
@@ -856,7 +860,7 @@
             return -1;
         }
     }
-    if (e->v.FormattedValue.format_spec > 0) {
+    if (e->v.FormattedValue.format_spec) {
         if (-1 == _PyUnicodeWriter_WriteASCIIString(writer, ":", 1) ||
             -1 == append_fstring_element(writer,
                                          e->v.FormattedValue.format_spec,
@@ -1119,7 +1123,7 @@
 }
 
 static int
-maybe_init_static_strings()
+maybe_init_static_strings(void)
 {
     if (!_str_open_br &&
         !(_str_open_br = PyUnicode_InternFromString("{"))) {
