summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch
blob: 7ac53650f2c503843ea373de294164873e724a38 (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
60
61
62
63
64
65
66
67
68
69
From 8a236330f2af56bde21e9f69208ea3e59f529f0c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 15 Mar 2020 17:02:30 -0700
Subject: [PATCH] typecast enum conversions explicitly

clang complains like below

libflashrom.c:191:43: error: implicit conversion from enumeration type 'const enum test_state' to different enumeration type 'enum flashrom_test_state' [-Werror,-Wenum-conversion]
                        supported_boards[i].working = binfo[i].working;
                                                    ~ ~~~~~~~~~^~~~~~~
libflashrom.c:229:46: error: implicit conversion from enumeration type 'const enum test_state' to different enumeration type 'enum flashrom_test_state' [-Werror,-Wenum-conversion]
                        supported_chipsets[i].status = chipset[i].status;
                                                     ~ ~~~~~~~~~~~^~~~~~

However these enums are exactly same so they can be typecasted

libflashrom.h

/** @ingroup flashrom-query */
enum flashrom_test_state {
        FLASHROM_TESTED_OK  = 0,
        FLASHROM_TESTED_NT  = 1,
        FLASHROM_TESTED_BAD = 2,
        FLASHROM_TESTED_DEP = 3,
        FLASHROM_TESTED_NA  = 4,
};

flash.h

enum test_state {
          OK = 0,
          NT = 1, /* Not tested */
          BAD,    /* Known to not work */
          DEP,    /* Support depends on configuration (e.g. Intel flash descriptor) */
          NA,     /* Not applicable (e.g. write support on ROM chips) */
  };

Upstream-Status: Pending

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 libflashrom.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libflashrom.c b/libflashrom.c
index 0dec22e..7956685 100644
--- a/libflashrom.c
+++ b/libflashrom.c
@@ -188,7 +188,7 @@ struct flashrom_board_info *flashrom_supported_boards(void)
 		for (; i < boards_known_size; ++i) {
 			supported_boards[i].vendor = binfo[i].vendor;
 			supported_boards[i].name = binfo[i].name;
-			supported_boards[i].working = binfo[i].working;
+			supported_boards[i].working = (enum flashrom_test_state)binfo[i].working;
 		}
 	} else {
 		msg_gerr("Memory allocation error!\n");
@@ -226,7 +226,7 @@ struct flashrom_chipset_info *flashrom_supported_chipsets(void)
 			supported_chipsets[i].chipset = chipset[i].device_name;
 			supported_chipsets[i].vendor_id = chipset[i].vendor_id;
 			supported_chipsets[i].chipset_id = chipset[i].device_id;
-			supported_chipsets[i].status = chipset[i].status;
+			supported_chipsets[i].status = (enum flashrom_test_state)chipset[i].status;
 	  }
 	} else {
 		msg_gerr("Memory allocation error!\n");
-- 
2.25.1