Line data Source code
1 0 : /*
2 : * Copyright (c) 2025 IAR Systems AB
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_TOOLCHAIN_IAR_H_
8 : #define ZEPHYR_INCLUDE_TOOLCHAIN_IAR_H_
9 :
10 0 : #define TOOLCHAIN_HAS_PRAGMA_DIAG
11 :
12 : #define _TOOLCHAIN_DISABLE_WARNING(warning) TOOLCHAIN_PRAGMA(diag_suppress = warning)
13 : #define _TOOLCHAIN_ENABLE_WARNING(warning) TOOLCHAIN_PRAGMA(diag_default = warning)
14 :
15 0 : #define TOOLCHAIN_DISABLE_WARNING(warning) _TOOLCHAIN_DISABLE_WARNING(warning)
16 0 : #define TOOLCHAIN_ENABLE_WARNING(warning) _TOOLCHAIN_ENABLE_WARNING(warning)
17 :
18 0 : #define TOOLCHAIN_DISABLE_IAR_WARNING(warning) _TOOLCHAIN_DISABLE_WARNING(warning)
19 0 : #define TOOLCHAIN_ENABLE_IAR_WARNING(warning) _TOOLCHAIN_ENABLE_WARNING(warning)
20 :
21 : /* Generic warnings */
22 :
23 :
24 : /**
25 : * @def TOOLCHAIN_WARNING_ADDRESS_OF_PACKED_MEMBER
26 : * @brief Toolchain-specific warning for taking the address of a packed member.
27 : *
28 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
29 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
30 : */
31 : #ifndef TOOLCHAIN_WARNING_ADDRESS_OF_PACKED_MEMBER
32 1 : #define TOOLCHAIN_WARNING_ADDRESS_OF_PACKED_MEMBER Pa039
33 : #endif
34 :
35 : /**
36 : * @def TOOLCHAIN_WARNING_ARRAY_BOUNDS
37 : * @brief Toolchain-specific warning for array bounds violations.
38 : *
39 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
40 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
41 : */
42 : #ifndef TOOLCHAIN_WARNING_ARRAY_BOUNDS
43 1 : #define TOOLCHAIN_WARNING_ARRAY_BOUNDS Pe001
44 : #endif
45 :
46 : /**
47 : * @def TOOLCHAIN_WARNING_ATTRIBUTES
48 : * @brief Toolchain-specific warning for unknown attributes.
49 : *
50 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
51 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
52 : */
53 : #ifndef TOOLCHAIN_WARNING_ATTRIBUTES
54 1 : #define TOOLCHAIN_WARNING_ATTRIBUTES Pe1097
55 : #endif
56 :
57 : /**
58 : * @def TOOLCHAIN_WARNING_DELETE_NON_VIRTUAL_DTOR
59 : * @brief Toolchain-specific warning for deleting a pointer to an object
60 : * with a non-virtual destructor.
61 : *
62 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
63 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
64 : */
65 : #ifndef TOOLCHAIN_WARNING_DELETE_NON_VIRTUAL_DTOR
66 1 : #define TOOLCHAIN_WARNING_DELETE_NON_VIRTUAL_DTOR Pe001
67 : #endif
68 :
69 : /**
70 : * @def TOOLCHAIN_WARNING_EXTRA
71 : * @brief Toolchain-specific warning for extra warnings.
72 : *
73 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
74 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
75 : */
76 : #ifndef TOOLCHAIN_WARNING_EXTRA
77 1 : #define TOOLCHAIN_WARNING_EXTRA Pe001
78 : #endif
79 :
80 : /**
81 : * @def TOOLCHAIN_WARNING_NONNULL
82 : * @brief Toolchain-specific warning for null pointer arguments to functions marked with "nonnull".
83 : *
84 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
85 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
86 : */
87 : #ifndef TOOLCHAIN_WARNING_NONNULL
88 1 : #define TOOLCHAIN_WARNING_NONNULL Pe001
89 : #endif
90 :
91 : /**
92 : * @def TOOLCHAIN_WARNING_POINTER_ARITH
93 : * @brief Toolchain-specific warning for pointer arithmetic.
94 : *
95 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
96 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
97 : */
98 : #ifndef TOOLCHAIN_WARNING_POINTER_ARITH
99 1 : #define TOOLCHAIN_WARNING_POINTER_ARITH Pe1143
100 : #endif
101 :
102 : /**
103 : * @def TOOLCHAIN_WARNING_SHADOW
104 : * @brief Toolchain-specific warning for shadow variables.
105 : *
106 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
107 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
108 : */
109 : #ifndef TOOLCHAIN_WARNING_SHADOW
110 1 : #define TOOLCHAIN_WARNING_SHADOW Pe001
111 : #endif
112 :
113 : /**
114 : * @def TOOLCHAIN_WARNING_UNUSED_LABEL
115 : * @brief Toolchain-specific warning for unused labels.
116 : *
117 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
118 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
119 : */
120 : #ifndef TOOLCHAIN_WARNING_UNUSED_LABEL
121 1 : #define TOOLCHAIN_WARNING_UNUSED_LABEL Pe001
122 : #endif
123 :
124 : /**
125 : * @def TOOLCHAIN_WARNING_UNUSED_VARIABLE
126 : * @brief Toolchain-specific warning for unused variables.
127 : *
128 : * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
129 : * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
130 : */
131 1 : #define TOOLCHAIN_WARNING_UNUSED_VARIABLE Pe001
132 :
133 0 : #define TOOLCHAIN_WARNING_UNUSED_FUNCTION Pe001
134 :
135 : #ifdef __ICCARM__
136 : #include "iar/iccarm.h"
137 : #endif
138 : #ifdef __ICCRISCV__
139 : #include "iar/iccriscv.h"
140 : #endif
141 :
142 : #endif /* ZEPHYR_INCLUDE_TOOLCHAIN_ICCARM_H_ */
|