aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-support/spice/files/Fix-build-issues-with-gcc-7.patch
blob: 7fcafdc7efe4afabfb0e1309e5485abce009be64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
From 9f001b6818ac4baa1df010ccf4200ca56bfb11b2 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
Date: Wed, 23 Aug 2017 13:47:29 -0400
Subject: [PATCH] Fix build issues with gcc 7

gcc 7 checks for when a switch statement doesn't break between
cases. When a break is not found you will see

| ../../git/server/reds.c: In function 'vdi_port_read_one_msg_from_device':
| ../../git/server/reds.c:797:31: error: this statement may fall through [-Werror=implicit-fallthrough=]
|              state->read_state = VDI_PORT_READ_STATE_GET_BUFF;
|              ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ../../git/server/reds.c:798:9: note: here
|          case VDI_PORT_READ_STATE_GET_BUFF: {
|          ^~~~

The 'fallthrough' comment will let gcc know this is done on purpose.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
 server/inputs_channel.c | 1 +
 server/reds.c           | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/server/inputs_channel.c b/server/inputs_channel.c
index 931dac1..534ab66 100644
--- a/server/inputs_channel.c
+++ b/server/inputs_channel.c
@@ -321,6 +321,7 @@ static int inputs_channel_handle_parsed(RedChannelClient *rcc, uint32_t size, ui
             activate_modifiers_watch();
         }
     }
+        /* fallthrough */
     case SPICE_MSGC_INPUTS_KEY_UP: {
         SpiceMsgcKeyDown *key_down = (SpiceMsgcKeyDown *)buf;
         for (i = 0; i < 4; i++) {
diff --git a/server/reds.c b/server/reds.c
index 30d0652..8c80eb6 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -795,6 +795,7 @@ static SpiceCharDeviceMsgToClient *vdi_port_read_one_msg_from_device(SpiceCharDe
             }
             state->message_recive_len = state->vdi_chunk_header.size;
             state->read_state = VDI_PORT_READ_STATE_GET_BUFF;
+            /* fallthrough */
         case VDI_PORT_READ_STATE_GET_BUFF: {
             if (!(state->current_read_buf = vdi_port_read_buf_get())) {
                 return NULL;
@@ -806,6 +807,7 @@ static SpiceCharDeviceMsgToClient *vdi_port_read_one_msg_from_device(SpiceCharDe
             state->message_recive_len -= state->recive_len;
             state->read_state = VDI_PORT_READ_STATE_READ_DATA;
         }
+            /* fallthrough */
         case VDI_PORT_READ_STATE_READ_DATA:
             n = sif->read(vdagent, state->recive_pos, state->recive_len);
             if (!n) {
-- 
2.7.4