[glib] Add G_GNUC_PRINTF on all functions with format strings



commit c219181cb20a57988ed8426be2a5da8acf6aa07c
Author: Henrique Dante de Almeida <hdante gmail com>
Date:   Sun Jan 13 14:05:14 2013 -0200

    Add G_GNUC_PRINTF on all functions with format strings
    
    This allows compilation with clang without errors, even when
    -Wformat-nonliteral is active (as long as there are no real cases of
    non literal formatting).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=691608

 gio/gdbusauth.c              |    1 +
 gio/gdbusauthmechanismsha1.c |    1 +
 gio/gdbusdaemon.c            |    1 +
 gio/gdbuserror.h             |    4 ++--
 gio/gdbusmessage.c           |    1 +
 gio/gdbusmethodinvocation.h  |    5 +++--
 gio/gsimpleasyncresult.h     |    5 +++--
 gio/gtask.h                  |    2 +-
 glib/gerror.c                |    1 +
 glib/gerror.h                |    2 +-
 glib/gmarkup.c               |    2 ++
 glib/gmarkup.h               |    2 +-
 glib/gmessages.h             |    4 ++--
 glib/gprintf.h               |    8 ++++----
 glib/gstrfuncs.h             |    3 ++-
 glib/gstring.h               |    6 ++++--
 glib/gutils.h                |    3 ++-
 glib/gvariant-parser.c       |    4 ++++
 glib/tests/markup-escape.c   |    1 +
 glib/tests/string.c          |    1 +
 glib/tests/test-printf.c     |    1 +
 21 files changed, 39 insertions(+), 19 deletions(-)
---
diff --git a/gio/gdbusauth.c b/gio/gdbusauth.c
index 962a218..dd4cc2c 100644
--- a/gio/gdbusauth.c
+++ b/gio/gdbusauth.c
@@ -46,6 +46,7 @@
 
 #include "glibintl.h"
 
+G_GNUC_PRINTF(1, 2)
 static void
 debug_print (const gchar *message, ...)
 {
diff --git a/gio/gdbusauthmechanismsha1.c b/gio/gdbusauthmechanismsha1.c
index 4729208..5e8b6c0 100644
--- a/gio/gdbusauthmechanismsha1.c
+++ b/gio/gdbusauthmechanismsha1.c
@@ -469,6 +469,7 @@ keyring_lookup_entry (const gchar  *cookie_context,
 }
 
 /* function for logging important events that the system administrator should take notice of */
+G_GNUC_PRINTF(1, 2)
 static void
 _log (const gchar *message,
       ...)
diff --git a/gio/gdbusdaemon.c b/gio/gdbusdaemon.c
index 35a724c..2393771 100644
--- a/gio/gdbusdaemon.c
+++ b/gio/gdbusdaemon.c
@@ -1346,6 +1346,7 @@ handle_start_service_by_name (_GFreedesktopDBus *object,
   return TRUE;
 }
 
+G_GNUC_PRINTF(5, 6)
 static void
 return_error (Client *client, GDBusMessage *message,
 	      GQuark                 domain,
diff --git a/gio/gdbuserror.h b/gio/gdbuserror.h
index d32b928..c1d3e9c 100644
--- a/gio/gdbuserror.h
+++ b/gio/gdbuserror.h
@@ -87,12 +87,12 @@ void     g_dbus_error_set_dbus_error        (GError         **error,
                                              const gchar     *dbus_error_name,
                                              const gchar     *dbus_error_message,
                                              const gchar     *format,
-                                             ...);
+                                             ...) G_GNUC_PRINTF(4, 5);
 void     g_dbus_error_set_dbus_error_valist (GError         **error,
                                              const gchar     *dbus_error_name,
                                              const gchar     *dbus_error_message,
                                              const gchar     *format,
-                                             va_list          var_args);
+                                             va_list          var_args) G_GNUC_PRINTF(4, 0);
 gchar   *g_dbus_error_encode_gerror         (const GError    *error);
 
 G_END_DECLS
diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c
index ecbc033..9181029 100644
--- a/gio/gdbusmessage.c
+++ b/gio/gdbusmessage.c
@@ -827,6 +827,7 @@ g_dbus_message_new_method_error_literal (GDBusMessage  *method_call_message,
  *
  * Since: 2.26
  */
+G_GNUC_PRINTF(3, 0)
 GDBusMessage *
 g_dbus_message_new_method_error_valist (GDBusMessage             *method_call_message,
                                         const gchar              *error_name,
diff --git a/gio/gdbusmethodinvocation.h b/gio/gdbusmethodinvocation.h
index 9146b21..29cfe63 100644
--- a/gio/gdbusmethodinvocation.h
+++ b/gio/gdbusmethodinvocation.h
@@ -55,12 +55,13 @@ void                   g_dbus_method_invocation_return_error         (GDBusMetho
                                                                       GQuark                 domain,
                                                                       gint                   code,
                                                                       const gchar           *format,
-                                                                      ...);
+                                                                      ...) G_GNUC_PRINTF(4, 5);
 void                   g_dbus_method_invocation_return_error_valist  (GDBusMethodInvocation *invocation,
                                                                       GQuark                 domain,
                                                                       gint                   code,
                                                                       const gchar           *format,
-                                                                      va_list                var_args);
+                                                                      va_list                var_args)
+                                                                      G_GNUC_PRINTF(4, 0);
 void                   g_dbus_method_invocation_return_error_literal (GDBusMethodInvocation *invocation,
                                                                       GQuark                 domain,
                                                                       gint                   code,
diff --git a/gio/gsimpleasyncresult.h b/gio/gsimpleasyncresult.h
index 6233369..1ea98f4 100644
--- a/gio/gsimpleasyncresult.h
+++ b/gio/gsimpleasyncresult.h
@@ -110,7 +110,8 @@ void                g_simple_async_result_set_error_va     (GSimpleAsyncResult
 							    GQuark                   domain,
 							    gint                     code,
 							    const char              *format,
-							    va_list                  args);
+							    va_list                  args)
+							    G_GNUC_PRINTF(4, 0);
 gboolean            g_simple_async_result_is_valid         (GAsyncResult            *result,
                                                             GObject                 *source,
                                                             gpointer                 source_tag);
@@ -121,7 +122,7 @@ void g_simple_async_report_error_in_idle  (GObject            *object,
 					   GQuark              domain,
 					   gint                code,
 					   const char         *format,
-					   ...);
+					   ...) G_GNUC_PRINTF(6, 7);
 void g_simple_async_report_gerror_in_idle (GObject            *object,
 					   GAsyncReadyCallback callback,
 					   gpointer            user_data,
diff --git a/gio/gtask.h b/gio/gtask.h
index bb03226..d5a2d77 100644
--- a/gio/gtask.h
+++ b/gio/gtask.h
@@ -61,7 +61,7 @@ void          g_task_report_new_error      (gpointer             source_object,
                                             GQuark               domain,
                                             gint                 code,
                                             const char          *format,
-                                            ...);
+                                            ...) G_GNUC_PRINTF(7, 8);
 
 GLIB_AVAILABLE_IN_2_36
 void          g_task_set_task_data         (GTask               *task,
diff --git a/glib/gerror.c b/glib/gerror.c
index e6ce3c0..2adbdf8 100644
--- a/glib/gerror.c
+++ b/glib/gerror.c
@@ -645,6 +645,7 @@ g_clear_error (GError **err)
     }
 }
 
+G_GNUC_PRINTF(2, 0)
 static void
 g_error_add_prefix (gchar       **string,
                     const gchar  *format,
diff --git a/glib/gerror.h b/glib/gerror.h
index f9020d6..8b5de28 100644
--- a/glib/gerror.h
+++ b/glib/gerror.h
@@ -60,7 +60,7 @@ GError*  g_error_new_literal   (GQuark         domain,
 GError*  g_error_new_valist    (GQuark         domain,
                                 gint           code,
                                 const gchar   *format,
-                                va_list        args);
+                                va_list        args) G_GNUC_PRINTF(3, 0);
 
 void     g_error_free          (GError        *error);
 GError*  g_error_copy          (const GError  *error);
diff --git a/glib/gmarkup.c b/glib/gmarkup.c
index 11f68de..bf7c008 100644
--- a/glib/gmarkup.c
+++ b/glib/gmarkup.c
@@ -403,6 +403,7 @@ set_error_literal (GMarkupParseContext  *context,
   g_propagate_error (error, tmp_error);
 }
 
+G_GNUC_PRINTF(4, 5)
 static void
 set_error (GMarkupParseContext  *context,
            GError              **error,
@@ -564,6 +565,7 @@ utf8_str (const gchar *utf8,
   return buf;
 }
 
+G_GNUC_PRINTF(5, 6)
 static void
 set_unescape_error (GMarkupParseContext  *context,
                     GError              **error,
diff --git a/glib/gmarkup.h b/glib/gmarkup.h
index d26c2ad..d0eda4f 100644
--- a/glib/gmarkup.h
+++ b/glib/gmarkup.h
@@ -214,7 +214,7 @@ gchar* g_markup_escape_text (const gchar *text,
 gchar *g_markup_printf_escaped (const char *format,
 				...) G_GNUC_PRINTF (1, 2);
 gchar *g_markup_vprintf_escaped (const char *format,
-				 va_list     args);
+				 va_list     args) G_GNUC_PRINTF(1, 0);
 
 typedef enum
 {
diff --git a/glib/gmessages.h b/glib/gmessages.h
index 777cda2..d0c1930 100644
--- a/glib/gmessages.h
+++ b/glib/gmessages.h
@@ -46,7 +46,7 @@ G_BEGIN_DECLS
 /* calculate a string size, guaranteed to fit format + args.
  */
 gsize	g_printf_string_upper_bound (const gchar* format,
-				     va_list	  args);
+				     va_list	  args) G_GNUC_PRINTF(1, 0);
 
 /* Log level shift offset for user defined
  * log levels (0-7 are used by GLib).
@@ -101,7 +101,7 @@ void            g_log                   (const gchar    *log_domain,
 void            g_logv                  (const gchar    *log_domain,
                                          GLogLevelFlags  log_level,
                                          const gchar    *format,
-                                         va_list         args);
+                                         va_list         args) G_GNUC_PRINTF(3, 0);
 GLogLevelFlags  g_log_set_fatal_mask    (const gchar    *log_domain,
                                          GLogLevelFlags  fatal_mask);
 GLogLevelFlags  g_log_set_always_fatal  (GLogLevelFlags  fatal_mask);
diff --git a/glib/gprintf.h b/glib/gprintf.h
index d96870f..2ed5ecc 100644
--- a/glib/gprintf.h
+++ b/glib/gprintf.h
@@ -36,16 +36,16 @@ gint                  g_sprintf   (gchar       *string,
 				   ...) G_GNUC_PRINTF (2, 3);
 
 gint                  g_vprintf   (gchar const *format,
-                                   va_list      args);
+                                   va_list      args) G_GNUC_PRINTF(1, 0);
 gint                  g_vfprintf  (FILE        *file,
 				   gchar const *format,
-				   va_list      args);
+				   va_list      args) G_GNUC_PRINTF(2, 0);
 gint                  g_vsprintf  (gchar       *string,
 				   gchar const *format,
-				   va_list      args);
+				   va_list      args) G_GNUC_PRINTF(2, 0);
 gint                  g_vasprintf (gchar      **string,
 				   gchar const *format,
-				   va_list      args);
+				   va_list      args) G_GNUC_PRINTF(2, 0);
 
 G_END_DECLS
 
diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
index 3142485..e0752d3 100644
--- a/glib/gstrfuncs.h
+++ b/glib/gstrfuncs.h
@@ -188,7 +188,8 @@ gchar*	              g_strdup	       (const gchar *str) G_GNUC_MALLOC;
 gchar*	              g_strdup_printf  (const gchar *format,
 					...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC;
 gchar*	              g_strdup_vprintf (const gchar *format,
-					va_list      args) G_GNUC_MALLOC;
+					va_list      args) G_GNUC_PRINTF(1, 0)
+					G_GNUC_MALLOC;
 gchar*	              g_strndup	       (const gchar *str,
 					gsize        n) G_GNUC_MALLOC;  
 gchar*	              g_strnfill       (gsize        length,  
diff --git a/glib/gstring.h b/glib/gstring.h
index a97aa4e..c6a11ae 100644
--- a/glib/gstring.h
+++ b/glib/gstring.h
@@ -109,13 +109,15 @@ GString*     g_string_ascii_down        (GString         *string);
 GString*     g_string_ascii_up          (GString         *string);
 void         g_string_vprintf           (GString         *string,
                                          const gchar     *format,
-                                         va_list          args);
+                                         va_list          args)
+                                         G_GNUC_PRINTF(2, 0);
 void         g_string_printf            (GString         *string,
                                          const gchar     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
 void         g_string_append_vprintf    (GString         *string,
                                          const gchar     *format,
-                                         va_list          args);
+                                         va_list          args)
+                                         G_GNUC_PRINTF(2, 0);
 void         g_string_append_printf     (GString         *string,
                                          const gchar     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
diff --git a/glib/gutils.h b/glib/gutils.h
index bddde24..e7f3756 100644
--- a/glib/gutils.h
+++ b/glib/gutils.h
@@ -187,7 +187,8 @@ gint                  g_snprintf           (gchar       *string,
 gint                  g_vsnprintf          (gchar       *string,
 					    gulong       n,
 					    gchar const *format,
-					    va_list      args);
+					    va_list      args)
+					    G_GNUC_PRINTF(3, 0);
 
 void                  g_nullify_pointer    (gpointer    *nullify_location);
 
diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c
index e2e85ab..d5c036a 100644
--- a/glib/gvariant-parser.c
+++ b/glib/gvariant-parser.c
@@ -78,6 +78,7 @@ typedef struct
   gint start, end;
 } SourceRef;
 
+G_GNUC_PRINTF(5, 0)
 static void
 parser_set_error_va (GError      **error,
                      SourceRef    *location,
@@ -105,6 +106,7 @@ parser_set_error_va (GError      **error,
   g_string_free (msg, TRUE);
 }
 
+G_GNUC_PRINTF(5, 6)
 static void
 parser_set_error (GError      **error,
                   SourceRef    *location,
@@ -130,6 +132,7 @@ typedef struct
 } TokenStream;
 
 
+G_GNUC_PRINTF(5, 6)
 static void
 token_stream_set_error (TokenStream  *stream,
                         GError      **error,
@@ -525,6 +528,7 @@ ast_free (AST *ast)
   ast->class->free (ast);
 }
 
+G_GNUC_PRINTF(5, 6)
 static void
 ast_set_error (AST          *ast,
                GError      **error,
diff --git a/glib/tests/markup-escape.c b/glib/tests/markup-escape.c
index 0cd90ef..b2de289 100644
--- a/glib/tests/markup-escape.c
+++ b/glib/tests/markup-escape.c
@@ -96,6 +96,7 @@ unichar_test (gconstpointer d)
   escape_test (&t);
 }
 
+G_GNUC_PRINTF(1, 3)
 static void
 test_format (const gchar *format,
 	     const gchar *expected,
diff --git a/glib/tests/string.c b/glib/tests/string.c
index 454574b..ba55d3d 100644
--- a/glib/tests/string.c
+++ b/glib/tests/string.c
@@ -106,6 +106,7 @@ test_string_new (void)
   g_string_free (string2, TRUE);
 }
 
+G_GNUC_PRINTF(2, 3)
 static void
 my_string_printf (GString     *string,
                   const gchar *format,
diff --git a/glib/tests/test-printf.c b/glib/tests/test-printf.c
index 10d0a1d..dbfc8fc 100644
--- a/glib/tests/test-printf.c
+++ b/glib/tests/test-printf.c
@@ -942,6 +942,7 @@ _Pragma ("GCC diagnostic pop")
 #endif
 }
 
+G_GNUC_PRINTF(1, 2)
 static gsize
 upper_bound (const gchar *format, ...)
 {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]