[Spice-devel] [PATCH spice] Add some more 'noreturn' annotations
Daniel P. Berrange
berrange at redhat.com
Wed Apr 25 03:33:10 PDT 2012
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 at 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;
--
1.7.1
More information about the Spice-devel
mailing list