ACK.

On 04/25/2012 12:33 PM, Daniel P. Berrange wrote:
Methods which longjump, unconditionally raise an
exception, or call _exit()  cannot return control
to the caller so should be annotated with 'noreturn'

Signed-off-by: Daniel P. Berrange<berra...@redhat.com>
---
  client/canvas.h         |    2 +-
  client/jpeg_decoder.cpp |    3 +--
  client/red_client.h     |    2 +-
  client/red_peer.cpp     |    2 +-
  client/x11/platform.cpp |    3 +--
  server/red_worker.c     |    6 ++++--
  6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/client/canvas.h b/client/canvas.h
index cd6a89b..7702568 100644
--- a/client/canvas.h
+++ b/client/canvas.h
@@ -252,7 +252,7 @@ public:
  /* TODO: unite with the window debug callbacks? */
  class GlzDecoderCanvasDebug: public GlzDecoderDebug {
  public:
-    virtual void error(const std::string&  str)
+    virtual SPICE_GNUC_NORETURN void error(const std::string&  str)
      {
          throw Exception(str);
      }
diff --git a/client/jpeg_decoder.cpp b/client/jpeg_decoder.cpp
index 2b2d5e4..c85902f 100644
--- a/client/jpeg_decoder.cpp
+++ b/client/jpeg_decoder.cpp
@@ -52,10 +52,9 @@ extern "C" {
      {
      }

-    static jpeg_boolean jpeg_decoder_fill_input_buffer(j_decompress_ptr cinfo)
+    static SPICE_GNUC_NORETURN jpeg_boolean 
jpeg_decoder_fill_input_buffer(j_decompress_ptr cinfo)
      {
          PANIC("no more data for jpeg");
-        return FALSE;
      }

      static void jpeg_decoder_skip_input_data(j_decompress_ptr cinfo, long 
num_bytes)
diff --git a/client/red_client.h b/client/red_client.h
index a2f00c4..c4b418a 100644
--- a/client/red_client.h
+++ b/client/red_client.h
@@ -99,7 +99,7 @@ private:

  class GlzDecoderWindowDebug: public GlzDecoderDebug {
  public:
-    virtual void error(const std::string&  str)
+    virtual SPICE_GNUC_NORETURN void error(const std::string&  str)
      {
          throw Exception(str);
      }
diff --git a/client/red_peer.cpp b/client/red_peer.cpp
index 10640c8..d2a6098 100644
--- a/client/red_peer.cpp
+++ b/client/red_peer.cpp
@@ -33,7 +33,7 @@
  #include "debug.h"
  #include "platform_utils.h"

-static void ssl_error()
+static void SPICE_GNUC_NORETURN ssl_error()
  {
      unsigned long last_error = ERR_peek_last_error();

diff --git a/client/x11/platform.cpp b/client/x11/platform.cpp
index f35d537..656c2a5 100644
--- a/client/x11/platform.cpp
+++ b/client/x11/platform.cpp
@@ -3167,11 +3167,10 @@ static int x_error_handler(Display* display, 
XErrorEvent* error_event)
      return 0;
  }

-static int x_io_error_handler(Display* display)
+static SPICE_GNUC_NORETURN int x_io_error_handler(Display* display)
  {
      LOG_ERROR("x io error on %s", XDisplayString(display));
      _exit(-1);
-    return 0;
  }

  static XVisualInfo* get_x_vis_info(int screen)
diff --git a/server/red_worker.c b/server/red_worker.c
index e271ae5..297b168 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -5274,7 +5274,8 @@ static int 
red_display_free_some_independent_glz_drawables(DisplayChannelClient
  /******************************************************
   *              Encoders callbacks
  *******************************************************/
-static SPICE_GNUC_PRINTF(2, 3) void quic_usr_error(QuicUsrContext *usr, const 
char *fmt, ...)
+static SPICE_GNUC_NORETURN SPICE_GNUC_PRINTF(2, 3) void
+quic_usr_error(QuicUsrContext *usr, const char *fmt, ...)
  {
      EncoderData *usr_data =&(((QuicData *)usr)->data);
      va_list ap;
@@ -5287,7 +5288,8 @@ static SPICE_GNUC_PRINTF(2, 3) void 
quic_usr_error(QuicUsrContext *usr, const ch
      longjmp(usr_data->jmp_env, 1);
  }

-static SPICE_GNUC_PRINTF(2, 3) void lz_usr_error(LzUsrContext *usr, const char 
*fmt, ...)
+static SPICE_GNUC_NORETURN SPICE_GNUC_PRINTF(2, 3) void
+lz_usr_error(LzUsrContext *usr, const char *fmt, ...)
  {
      EncoderData *usr_data =&(((LzData *)usr)->data);
      va_list ap;
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to