@@ -23,50 +23,60 @@ set_compiler_property(PROPERTY optimization_fast --no_size_constraints)
23
23
# This section covers flags related to warning levels #
24
24
#######################################################
25
25
26
- # Property for standard warning base in Zephyr, this will always be set when
27
- # compiling.
28
- set_compiler_property (PROPERTY warning_base
29
- --diag_error=Pe223 # function "xxx" declared implicitly
30
- --diag_warning=Pe054 # too few arguments in invocation of macro
31
- --diag_warning=Pe144 # a value of type "void *" cannot be used to initialize an entity of type [...] "void (*)(struct onoff_manager *, int)"
32
- --diag_warning=Pe167 # argument of type "void *" is incompatible with [...] "void (*)(void *, void *, void *)"
33
- --diag_suppress=Pe1675 # unrecognized GCC pragma
34
- --diag_suppress=Pe111 # statement is unreachable
35
- --diag_suppress=Pe1143 # arithmetic on pointer to void or function type
36
- --diag_suppress=Pe068 ) # integer conversion resulted in a change of sign)
37
-
38
-
39
- set (IAR_WARNING_DW_1
40
- --diag_suppress=Pe188 # enumerated type mixed with another type
41
- --diag_suppress=Pe128 # loop is not reachable
42
- --diag_suppress=Pe550 # variable "res" was set but never used
43
- --diag_suppress=Pe546 # transfer of control bypasses initialization
44
- --diag_suppress=Pe186 ) # pointless comparison of unsigned integer with zero
45
-
46
- set (IAR_WARNING_DW2
47
- --diag_suppress=Pe1097 # unknown attribute
48
- --diag_suppress=Pe381 # extra ";" ignored
49
- --diag_suppress=Pa082 # undefined behavior: the order of volatile accesses is undefined
50
- --diag_suppress=Pa084 # pointless integer comparison, the result is always false
51
- --diag_suppress=Pe185 # dynamic initialization in unreachable code )
52
- --diag_suppress=Pe167 # argument of type "onoff_notify_fn" is incompatible with...
53
- --diag_suppress=Pe144 # a value of type "void *" cannot be used to initialize...
54
- --diag_suppress=Pe177 # function "xxx" was declared but never referenced
55
- --diag_suppress=Pe513 ) # a value of type "void *" cannot be assigned to an entity of type "int (*)(int)"
56
-
57
- set (IAR_WARNING_DW3 )
58
-
59
- set_compiler_property (PROPERTY warning_dw_1
60
- ${IAR_WARNING_DW_3}
61
- ${IAR_WARNING_DW_2}
62
- ${IAR_WARNING_DW_1} )
63
-
64
- set_compiler_property (PROPERTY warning_dw_2
65
- ${IAR_WARNING_DW3}
66
- ${IAR_WARNING_DW2} )
67
-
68
- # no suppressions
69
- set_compiler_property (PROPERTY warning_dw_3 ${IAR_WARNING_DW3} )
26
+ # -DW=... settings
27
+ #
28
+ # W=1 - warnings that may be relevant and does not occur too often
29
+ # W=2 - warnings that occur quite often but may still be relevant
30
+ # W=3 - the more obscure warnings, can most likely be ignored
31
+
32
+ set (IAR_SUPPRESSED_WARNINGS )
33
+
34
+ # Set basic suppressed warning first
35
+
36
+ # Pe223: function "xxx" declared implicitly
37
+ # Pe054: too few arguments in invocation of macro
38
+ # Pe1675: unrecognized GCC pragma
39
+ # Pe111: statement is unreachable
40
+ # Pe1143: arithmetic on pointer to void or function type
41
+ # Pe068: integer conversion resulted in a change of sign
42
+ list (APPEND IAR_SUPPRESSED_WARNINGS
43
+ --diag_suppress=Pe068,Pe1143,Pe111,Pe1675,Pe054,Pe223 )
44
+
45
+ # Since IAR does not turn on warnings we do this backwards
46
+ # by not suppressing warnings on higher levels.
47
+ if (NOT W MATCHES "3" )
48
+ # Pe381: extra ";" ignored
49
+ list (APPEND IAR_SUPPRESSED_WARNINGS --diag_suppress=Pe381 )
50
+ endif ()
51
+ if (NOT W MATCHES "2" AND NOT W MATCHES "3" )
52
+ # Pe1097: unknown attribute
53
+ # Pa082: undefined behavior: the order of volatile accesses is undefined
54
+ # Pa084: pointless integer comparison, the result is always false
55
+ # Pe185: dynamic initialization in unreachable code
56
+ # Pe167: argument of type "onoff_notify_fn" is incompatible with...
57
+ # Pe144: a value of type "void *" cannot be used to initialize...
58
+ # Pe177: function "xxx" was declared but never referenced
59
+ # Pe513: a value of type "void *" cannot be assigned to an
60
+ # entity of type "int (*)(int)"
61
+ list (APPEND IAR_SUPPRESSED_WARNINGS
62
+ --diag_suppress=Pe513,Pe177,Pe144,Pe167,Pe185,Pa084,Pa082,Pe1097 )
63
+ endif ()
64
+ if (NOT W MATCHES "1" AND NOT W MATCHES "2" AND NOT W MATCHES "3" )
65
+ # Pe188: enumerated type mixed with another type
66
+ # Pe128: loop is not reachable
67
+ # Pe550: variable "res" was set but never used
68
+ # Pe546: transfer of control bypasses initialization
69
+ # Pe186: pointless comparison of unsigned integer with zero
70
+ # Pe054: too few arguments in invocation of macro xxx
71
+ # Pe144: a value of type "void *" cannot be used to initialize an
72
+ # entity of type [...] "void (*)(struct onoff_manager *, int)"
73
+ # Pe167: argument of type "void *" is incompatible with [...]
74
+ # "void (*)(void *, void *, void *)"
75
+ list (APPEND IAR_SUPPRESSED_WARNINGS
76
+ --diag_suppress=Pe054,Pe186,Pe546,Pe550,Pe128,Pe188,Pe144,Pe167 )
77
+ endif ()
78
+
79
+ set_compiler_property (PROPERTY warning_base ${IAR_SUPPRESSED_WARNINGS} )
70
80
71
81
# Extended warning set supported by the compiler
72
82
set_compiler_property (PROPERTY warning_extended )
@@ -77,7 +87,7 @@ set_compiler_property(PROPERTY warning_error_implicit_int)
77
87
# Compiler flags to use when compiling according to MISRA
78
88
set_compiler_property (PROPERTY warning_error_misra_sane )
79
89
80
- set_property (TARGET compiler PROPERTY warnings_as_errors --warnings_are_errors )
90
+ set_property (TARGET compiler PROPERTY warnings_as_errors --warnings_are_errors )
81
91
82
92
###########################################################################
83
93
# This section covers flags related to C or C++ standards / standard libs #
@@ -151,7 +161,6 @@ set_compiler_property(PROPERTY freestanding)
151
161
# Flag to include debugging symbol in compilation
152
162
set_property (TARGET compiler PROPERTY debug --debug )
153
163
set_property (TARGET compiler-cpp PROPERTY debug --debug )
154
- set_property (TARGET asm PROPERTY debug -gdwarf-4 )
155
164
156
165
set_compiler_property (PROPERTY no_common )
157
166
0 commit comments