summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2012-04-25 11:29:43 +0100
committerDaniel P. Berrange <berrange@redhat.com>2012-04-25 11:31:14 +0100
commitef78242e19e8d0599c74aa34fad0fbb5a56cdb20 (patch)
tree8345d803d0849540f23d5c69cc4e8e9b01954430
parent49e2b2679f8fdbcddab0e1c022189966d7a7d103 (diff)
downloadspice-ef78242e19e8d0599c74aa34fad0fbb5a56cdb20.tar.gz
spice-ef78242e19e8d0599c74aa34fad0fbb5a56cdb20.tar.xz
spice-ef78242e19e8d0599c74aa34fad0fbb5a56cdb20.zip
Add some more 'noreturn' annotations
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 <berrange@redhat.com>
-rw-r--r--client/canvas.h2
-rw-r--r--client/jpeg_decoder.cpp3
-rw-r--r--client/red_client.h2
-rw-r--r--client/red_peer.cpp2
-rw-r--r--client/x11/platform.cpp3
-rw-r--r--server/red_worker.c6
6 files changed, 9 insertions, 9 deletions
diff --git a/client/canvas.h b/client/canvas.h
index cd6a89b9..77025687 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 2b2d5e47..c85902f5 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 a2f00c41..c4b418a2 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 10640c8d..d2a60987 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 0669b69f..14c6e0cd 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 e271ae57..297b1687 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;