[Spice-devel] [PATCH] Silence gcc false positive with -Wuninitialized

Christophe Fergeau cfergeau at redhat.com
Fri Oct 25 10:19:01 CEST 2013


Ping ?

On Fri, Oct 18, 2013 at 02:53:08PM +0200, Christophe Fergeau wrote:
> Some versions of gcc warn about:
> red_channel.c: In function 'red_channel_client_wait_outgoing_item':
> red_channel.c:2331: error: 'end_time' may be used uninitialized in this function [-Wuninitialized]
> red_channel.c: In function 'red_channel_client_wait_pipe_item_sent':
> red_channel.c:2363: error: 'end_time' may be used uninitialized in this function [-Wuninitialized]
> red_channel.c: In function 'red_channel_wait_all_sent':
> red_channel.c:2401: error: 'end_time' may be used uninitialized in this function [-Wuninitialized]
> 
> This is a false positive as end_time is unitialized when timeout is -1, and
> we will only try to use end_time if timeout is not -1.
> 
> This commit initializes end_time to UINT64_MAX to avoid that warning. As
> the test involving end_time will never be reached, we ensure it's always
> TRUE so that it would be a noop even if it was reached.
> ---
>  server/red_channel.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/server/red_channel.c b/server/red_channel.c
> index 2cef2be..f2d1cca 100644
> --- a/server/red_channel.c
> +++ b/server/red_channel.c
> @@ -2336,6 +2336,8 @@ int red_channel_client_wait_outgoing_item(RedChannelClient *rcc,
>      }
>      if (timeout != -1) {
>          end_time = red_now() + timeout;
> +    } else {
> +        end_time = UINT64_MAX;
>      }
>      spice_info("blocked");
>  
> @@ -2367,8 +2369,11 @@ int red_channel_client_wait_pipe_item_sent(RedChannelClient *rcc,
>  
>      if (timeout != -1) {
>          end_time = red_now() + timeout;
> +    } else {
> +        end_time = UINT64_MAX;
>      }
>  
> +
>      rcc->channel->channel_cbs.hold_item(rcc, item);
>  
>      if (red_channel_client_blocked(rcc)) {
> @@ -2404,6 +2409,8 @@ int red_channel_wait_all_sent(RedChannel *channel,
>  
>      if (timeout != -1) {
>          end_time = red_now() + timeout;
> +    } else {
> +        end_time = UINT64_MAX;
>      }
>  
>      red_channel_push(channel);
> -- 
> 1.8.3.1
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20131025/84d0be14/attachment.pgp>


More information about the Spice-devel mailing list