add for(;;); after the g_log call so that GCC stops issuing false warnings
authorRyan Lortie <desrt@desrt.ca>
Thu, 7 Feb 2008 07:13:39 +0000 (07:13 +0000)
committerRyan Lortie <ryanl@src.gnome.org>
Thu, 7 Feb 2008 07:13:39 +0000 (07:13 +0000)
2008-02-07  Ryan Lortie  <desrt@desrt.ca>

        * glib/gmessages.h (g_error): add for(;;); after the g_log call so
        that GCC stops issuing false warnings about reachability  Bug #514920

svn path=/trunk/; revision=6476

ChangeLog
glib/gmessages.h

index 9ec3cc7..499915d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-07  Ryan Lortie  <desrt@desrt.ca>
+
+       * glib/gmessages.h (g_error): add for(;;); after the g_log call so
+       that GCC stops issuing false warnings about reachability  Bug #514920
+
 2008-02-06  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/pcre/*: Update the internal copy of PCRE to 7.6
index 5535833..eb2ca8f 100644 (file)
@@ -130,9 +130,14 @@ void g_assert_warning         (const char *log_domain,
 #define G_LOG_DOMAIN    ((gchar*) 0)
 #endif  /* G_LOG_DOMAIN */
 #ifdef G_HAVE_ISO_VARARGS
-#define g_error(...)    g_log (G_LOG_DOMAIN,         \
+/* for(;;); so that GCC knows that control doesn't go past g_error() */
+#define g_error(...)  G_STMT_START {                 \
+                        g_log (G_LOG_DOMAIN,         \
                                G_LOG_LEVEL_ERROR,    \
-                               __VA_ARGS__)
+                               __VA_ARGS__);         \
+                        for (;;);                    \
+                      } G_STMT_END
+                        
 #define g_message(...)  g_log (G_LOG_DOMAIN,         \
                                G_LOG_LEVEL_MESSAGE,  \
                                __VA_ARGS__)
@@ -146,9 +151,13 @@ void g_assert_warning         (const char *log_domain,
                                G_LOG_LEVEL_DEBUG,    \
                                __VA_ARGS__)
 #elif defined(G_HAVE_GNUC_VARARGS)
-#define g_error(format...)      g_log (G_LOG_DOMAIN,         \
+#define g_error(format...)    G_STMT_START {                 \
+                                g_log (G_LOG_DOMAIN,         \
                                        G_LOG_LEVEL_ERROR,    \
-                                       format)
+                                       format);              \
+                                for (;;);                    \
+                              } G_STMT_END
+                              
 #define g_message(format...)    g_log (G_LOG_DOMAIN,         \
                                        G_LOG_LEVEL_MESSAGE,  \
                                        format)
@@ -170,6 +179,8 @@ g_error (const gchar *format,
   va_start (args, format);
   g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
   va_end (args);
+
+  for(;;);
 }
 static void
 g_message (const gchar *format,