Enforce printf format literals checking

Change-Id: Ifcba2251a723770e8bce12e39beda8236c814c42
Reviewed-on: https://weave-review.googlesource.com/2320
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/Makefile b/Makefile
index 512c2a6..4ea625f 100644
--- a/Makefile
+++ b/Makefile
@@ -26,9 +26,9 @@
 	-Wall \
 	-Werror \
 	-Wextra \
+	-Wformat=2 \
 	-Wl,--exclude-libs,ALL \
 	-Wno-char-subscripts \
-	-Wno-format-nonliteral \
 	-Wno-missing-field-initializers \
 	-Wno-unused-local-typedefs \
 	-Wno-unused-parameter \
diff --git a/third_party/chromium/base/strings/stringprintf.cc b/third_party/chromium/base/strings/stringprintf.cc
index 8147ed3..c3ef88c 100644
--- a/third_party/chromium/base/strings/stringprintf.cc
+++ b/third_party/chromium/base/strings/stringprintf.cc
@@ -27,7 +27,10 @@
                       size_t buf_size,
                       const char* format,
                       va_list argptr) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
   return base::vsnprintf(buffer, buf_size, format, argptr);
+#pragma GCC diagnostic pop
 }
 
 // Templatized backend for StringPrintF/StringAppendF. This does not finalize
diff --git a/third_party/chromium/base/strings/stringprintf_unittest.cc b/third_party/chromium/base/strings/stringprintf_unittest.cc
index e70499d..7e9b13c 100644
--- a/third_party/chromium/base/strings/stringprintf_unittest.cc
+++ b/third_party/chromium/base/strings/stringprintf_unittest.cc
@@ -22,7 +22,10 @@
 static void StringAppendVTestHelper(std::string* out, const char* format, ...) {
   va_list ap;
   va_start(ap, format);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
   StringAppendV(out, format, ap);
+#pragma GCC diagnostic pop
   va_end(ap);
 }