--- src/preproc/pic/pic.cpp.orig	2026-05-15 12:55:49
+++ src/preproc/pic/pic.cpp	2026-05-15 12:56:06
@@ -5271,11 +5271,8 @@
 	one_format += '\0';
 // We validated the format string above.  Most conversion specifiers are
 // rejected, including `n`.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
 	snprintf(sprintf_buf, sizeof sprintf_buf,
 		 one_format.contents(), v[i++]);
-#pragma GCC diagnostic pop
       }
       one_format.clear();
       result += sprintf_buf;
--- src/preproc/pic/pic.ypp.orig	2026-05-15 12:56:20
+++ src/preproc/pic/pic.ypp	2026-05-15 12:56:30
@@ -2018,11 +2018,8 @@
 	one_format += '\0';
 // We validated the format string above.  Most conversion specifiers are
 // rejected, including `n`.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
 	snprintf(sprintf_buf, sizeof sprintf_buf,
 		 one_format.contents(), v[i++]);
-#pragma GCC diagnostic pop
       }
       one_format.clear();
       result += sprintf_buf;
--- src/preproc/eqn/delim.cpp.orig	2026-05-15 12:58:26
+++ src/preproc/eqn/delim.cpp	2026-05-15 12:58:43
@@ -326,10 +326,7 @@
   char buf[256];
 // The format string in the sprintf below comes from a struct
 // initializer above, and is not subject to external influence.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
   sprintf(buf, d->chain_format, "\\\\n[" INDEX_REG "]");
-#pragma GCC diagnostic pop
   printf(".nr " INDEX_REG " 0\n"
 	 ".de " TEMP_MACRO "\n"
 	 ".ie c%s \\{\\\n"
