[vlc-devel] [PATCH] Define functions that are known not to return a value as such, using __attribute__ ((__noreturn__)).

Rémi Denis-Courmont remi at remlab.net
Tue May 4 09:25:45 CEST 2010


VLC is supposed to compile on any C99, not just GNU C. This patch is not
acceptable as is.

On Tue,  4 May 2010 01:53:12 +0200, Dominique Leuenberger
<dominique at leuenberger.net> wrote:
> ---
>  modules/access/mms/mmstu.c |    2 +-
>  modules/control/netsync.c  |    2 +-
>  modules/control/signals.c  |    2 +-
>  modules/demux/live555.cpp  |    2 +-
>  modules/stream_out/rtp.c   |    2 +-
>  src/modules/cache.c        |    1 +
>  6 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/modules/access/mms/mmstu.c b/modules/access/mms/mmstu.c
> index 45e363d..62e8f8e 100644
> --- a/modules/access/mms/mmstu.c
> +++ b/modules/access/mms/mmstu.c
> @@ -1554,7 +1554,7 @@ static int mms_HeaderMediaRead( access_t *p_access,
> int i_type )
>      return -1;
>  }
> 
> -static void *KeepAliveThread( void *p_data )
> +static void *KeepAliveThread( void *p_data ) __attribute__
> ((__noreturn__))
>  {
>      access_t *p_access = p_data;
> 
> diff --git a/modules/control/netsync.c b/modules/control/netsync.c
> index 455be18..0f51318 100644
> --- a/modules/control/netsync.c
> +++ b/modules/control/netsync.c
> @@ -211,7 +211,7 @@ static void *Master(void *handle)
>      }
>  }
> 
> -static void *Slave(void *handle)
> +static void *Slave(void *handle) __attribute__ ((__noreturn__))
>  {
>      intf_thread_t *intf = handle;
>      intf_sys_t *sys = intf->p_sys;
> diff --git a/modules/control/signals.c b/modules/control/signals.c
> index 5cb6f36..1b35338 100644
> --- a/modules/control/signals.c
> +++ b/modules/control/signals.c
> @@ -94,7 +94,7 @@ static bool ignored (int signum)
>              ? (void *)sa.sa_sigaction : (void *)sa.sa_handler) ==
> SIG_IGN;
>  }
> 
> -static void *SigThread (void *data)
> +static void *SigThread (void *data) __attribute__ ((__noreturn__))
>  {
>      intf_thread_t *obj = data;
>      sigset_t set;
> diff --git a/modules/demux/live555.cpp b/modules/demux/live555.cpp
> index e6fab0a..4643497 100644
> --- a/modules/demux/live555.cpp
> +++ b/modules/demux/live555.cpp
> @@ -1880,7 +1880,7 @@ static void TaskInterrupt( void *p_private )
> 
>
/*****************************************************************************
>   *
>  
>
*****************************************************************************/
> -static void* TimeoutPrevention( void *p_data )
> +static void* TimeoutPrevention( void *p_data ) __attribute__
> ((__noreturn__))
>  {
>      timeout_thread_t *p_timeout = (timeout_thread_t *)p_data;
> 
> diff --git a/modules/stream_out/rtp.c b/modules/stream_out/rtp.c
> index ab3907b..295317b 100644
> --- a/modules/stream_out/rtp.c
> +++ b/modules/stream_out/rtp.c
> @@ -1655,7 +1655,7 @@ static void* ThreadSend( void *data )
> 
> 
>  /* This thread dequeues incoming connections (DCCP streaming) */
> -static void *rtp_listen_thread( void *data )
> +static void *rtp_listen_thread( void *data ) __attribute__
> ((__noreturn__))
>  {
>      sout_stream_id_t *id = data;
> 
> diff --git a/src/modules/cache.c b/src/modules/cache.c
> index 3f09ad8..2ff05ae 100644
> --- a/src/modules/cache.c
> +++ b/src/modules/cache.c
> @@ -330,6 +330,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t
> *p_bank, const char *dir )
>   * It is only used as a non-NULL vlc_callback_t value for comparison. */
>  static int dummy_callback (vlc_object_t *obj, const char *name,
>                             vlc_value_t oldval, vlc_value_t newval, void
> *data)
> +           __attribute__ ((__noreturn__))
>  {
>      (void) obj; (void)name; (void)oldval; (void)newval; (void)data;
>      assert (0);
> --
> 1.6.0.2
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> http://mailman.videolan.org/listinfo/vlc-devel
-- 
Rémi Denis-Courmont
http://www.remlab.net
http://fi.linkedin.com/in/remidenis




More information about the vlc-devel mailing list