Lines Matching +full:de +full:- +full:assert +full:- +full:time

13   but not enforced. Rules are not yet enforced in CI and pull-requests cannot be
33 Coding guideline rules may be removed/changed at any time by filing a
41 <https://github.com/zephyrproject-rtos/zephyr/issues/58903>`__ is being worked on.
46 The coding guideline rules are based on MISRA-C 2012 and are a **subset** of MISRA-C.
54 available through the project. If you need a copy of MISRA-C 2012, please
60 .. list-table:: Main rules
61 :header-rows: 1
64 * - Zephyr rule
65 - Description
66 - MISRA-C 2012 rule
67 - MISRA-C severity
68 - CERT C reference
71 * - 1
72- Any implementation-defined behaviour on which the output of the program depends shall be docume…
73- `Dir 1.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_01_01.c>`_
74 - Required
75- `MSC09-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC09-C.+Character+encoding%3A+Use+subs…
78 * - 2
79 - All source files shall compile without any compilation errors
80- `Dir 2.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_02_01.c>`_
81 - Required
82 - N/A
85 * - 3
86 - All code shall be traceable to documented requirements
87- `Dir 3.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_03_01.c>`_
88 - Required
89 - N/A
92 * - 4
93 - Run-time failures shall be minimized
94- `Dir 4.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_01.c>`_
95 - Required
96 - N/A
99 * - 5
100 - All usage of assembly language should be documented
101- `Dir 4.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_02.c>`_
102 - Advisory
103 - N/A
106 * - 6
107 - Sections of code should not be “commented out”
108- `Dir 4.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_04.c>`_
109 - Advisory
110- `MSC04-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC04-C.+Use+comments+consistently+and+…
113 * - 7
114- Identifiers in the same name space with overlapping visibility should be typographically unambi…
115- `Dir 4.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_05.c>`_
116 - Advisory
117- `DCL02-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL02-C.+Use+visually+distinct+identifi…
120 * - 8
121- typedefs that indicate size and signedness should be used in place of the basic numerical types
122- `Dir 4.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_06.c>`_
123 - Advisory
124 - N/A
127 * - 9
128 - If a function returns error information, then that error information shall be tested
129- `Dir 4.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_07.c>`_
130 - Required
131 - N/A
134 * - 10
135- If a pointer to a structure or union is never dereferenced within a translation unit, then the …
136- | `Dir 4.8 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master…
137 …| `Dir 4.8 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_…
138 - Advisory
139- `DCL12-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL12-C.+Implement+abstract+data+types+…
142 * - 11
143- A function should be used in preference to a function-like macro where they are interchangeable
144- `Dir 4.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_09.c>`_
145 - Advisory
146- `PRE00-C <https://wiki.sei.cmu.edu/confluence/display/c/PRE00-C.+Prefer+inline+or+static+functi…
149 * - 12
150- Precautions shall be taken in order to prevent the contents of a header file being included mor…
151- `Dir 4.10 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_10.c>…
152 - Required
153- `PRE06-C <https://wiki.sei.cmu.edu/confluence/display/c/PRE06-C.+Enclose+header+files+in+an+inc…
156 * - 13
157 - The validity of values passed to library functions shall be checked
158- `Dir 4.11 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_11.c>…
159 - Required
160 - N/A
163 * - 14
164 - Dynamic memory allocation shall not be used
165- `Dir 4.12 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_12.c>…
166 - Required
167- `STR01-C <https://wiki.sei.cmu.edu/confluence/display/c/STR01-C.+Adopt+and+implement+a+consiste…
170 * - 15
171- Functions which are designed to provide operations on a resource should be called in an appropr…
172- `Dir 4.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_13.c>…
173 - Advisory
174 - N/A
177 * - 16
178 - The validity of values received from external sources shall be checked
179- `Dir 4.14 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_14.c>…
180 - Required
181 - N/A
184 * - 17
185 - Language extensions should not be used
186- `Rule 1.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_01_02.c>…
187 - Advisory
188- `MSC04-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC04-C.+Use+comments+consistently+and+…
191 * - 18
192 - There shall be no occurrence of undefined or critical unspecified behaviour
193- `Rule 1.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_01_03.c>…
194 - Required
195 - N/A
198 * - 19
199 - A project shall not contain unreachable code
200- | `Rule 2.1 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/maste…
201 …| `Rule 2.1 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R…
202 - Required
203- `MSC07-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC07-C.+Detect+and+remove+dead+code>`_
206 * - 20
207 - There shall be no dead code
208- `Rule 2.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_02_02.c>…
209 - Required
210- `MSC12-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC12-C.+Detect+and+remove+code+that+ha…
213 * - 21
214 - A project should not contain unused type declarations
215- `Rule 2.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_02_03.c>…
216 - Advisory
217 - N/A
220 * - 22
221 - A function should not contain unused label declarations
222- `Rule 2.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_02_06.c>…
223 - Advisory
224 - N/A
227 * - 23
228 - There should be no unused parameters in functions
229- `Rule 2.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_02_07.c>…
230 - Advisory
231 - N/A
234 * - 24
235 - The character sequences /* and // shall not be used within a comment
236- `Rule 3.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_03_01.c>…
237 - Required
238- `MSC04-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC04-C.+Use+comments+consistently+and+…
241 * - 25
242 - Line-splicing shall not be used in // comments
243- `Rule 3.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_03_02.c>…
244 - Required
245 - N/A
248 * - 26
249 - Octal and hexadecimal escape sequences shall be terminated
250- `Rule 4.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_04_01.c>…
251 - Required
252- `MSC09-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC09-C.+Character+encoding%3A+Use+subs…
255 * - 27
256 - Trigraphs should not be used
257- `Rule 4.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_04_02.c>…
258 - Advisory
259- `PRE07-C <https://wiki.sei.cmu.edu/confluence/display/c/PRE07-C.+Avoid+using+repeated+question+…
262 * - 28
263 - External identifiers shall be distinct
264- | `Rule 5.1 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/maste…
265 …| `Rule 5.1 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R…
266 - Required
267- `DCL23-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL23-C.+Guarantee+that+mutually+visibl…
270 * - 29
271 - Identifiers declared in the same scope and name space shall be distinct
272- `Rule 5.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_02.c>…
273 - Required
274- `DCL23-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL23-C.+Guarantee+that+mutually+visibl…
277 * - 30
278- An identifier declared in an inner scope shall not hide an identifier declared in an outer scope
279- `Rule 5.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_03.c>…
280 - Required
281- `DCL23-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL23-C.+Guarantee+that+mutually+visibl…
284 * - 31
285 - Macro identifiers shall be distinct
286- `Rule 5.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_04.c>…
287 - Required
288- `DCL23-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL23-C.+Guarantee+that+mutually+visibl…
291 * - 32
292 - Identifiers shall be distinct from macro names
293- `Rule 5.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_05.c>…
294 - Required
295- `DCL23-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL23-C.+Guarantee+that+mutually+visibl…
298 * - 33
299 - A typedef name shall be a unique identifier
300- `Rule 5.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_06.c>…
301 - Required
302 - N/A
305 * - 34
306 - A tag name shall be a unique identifier
307- `Rule 5.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_07.c>…
308 - Required
309 - N/A
312 * - 35
313 - Identifiers that define objects or functions with external linkage shall be unique
314- | `Rule 5.8 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/maste…
315 …| `Rule 5.8 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R…
316 - Required
317 - N/A
320 * - 36
321 - Identifiers that define objects or functions with internal linkage should be unique
322- | `Rule 5.9 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/maste…
323 …| `Rule 5.9 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R…
324 - Advisory
325 - N/A
328 * - 37
329 - Bit-fields shall only be declared with an appropriate type
330- `Rule 6.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_06_01.c>…
331 - Required
332- `INT14-C <https://wiki.sei.cmu.edu/confluence/display/c/INT14-C.+Avoid+performing+bitwise+and+a…
335 * - 38
336 - Single-bit named bit fields shall not be of a signed type
337- `Rule 6.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_06_02.c>…
338 - Required
339- `INT14-C <https://wiki.sei.cmu.edu/confluence/display/c/INT14-C.+Avoid+performing+bitwise+and+a…
342 * - 39
343 - Octal constants shall not be used
344- `Rule 7.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_07_01.c>…
345 - Required
346- `DCL18-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL18-C.+Do+not+begin+integer+constants…
349 * - 40
350- A u or U suffix shall be applied to all integer constants that are represented in an unsigned t…
351- `Rule 7.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_07_02.c>…
352 - Required
353 - N/A
356 * - 41
357 - The lowercase character l shall not be used in a literal suffix
358- `Rule 7.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_07_03.c>…
359 - Required
360 - `DCL16-C <https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152241>`_
363 * - 42
364- A string literal shall not be assigned to an object unless the objects type is pointer to const
365- `Rule 7.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_07_04.c>…
366 - Required
367 - N/A
370 * - 43
371 - Types shall be explicitly specified
372- `Rule 8.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_01.c>…
373 - Required
374 - N/A
377 * - 44
378 - Function types shall be in prototype form with named parameters
379- `Rule 8.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_02.c>…
380 - Required
381- `DCL20-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL20-C.+Explicitly+specify+void+when+a…
384 * - 45
385 - All declarations of an object or function shall use the same names and type qualifiers
386- `Rule 8.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_03.c>…
387 - Required
388 - N/A
391 * - 46
392- A compatible declaration shall be visible when an object or function with external linkage is d…
393- `Rule 8.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_04.c>…
394 - Required
395 - N/A
398 * - 47
399 - An external object or function shall be declared once in one and only one file
400- | `Rule 8.5 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/maste…
401 …| `Rule 8.5 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R…
402 - Required
403 - N/A
406 * - 48
407 - An identifier with external linkage shall have exactly one external definition
408- | `Rule 8.6 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/maste…
409 …| `Rule 8.6 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R…
410 - Required
411 - N/A
414 * - 49
415- The static storage class specifier shall be used in all declarations of objects and functions t…
416- `Rule 8.8 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_08.c>…
417 - Required
418- `DCL15-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL15-C.+Declare+file-scope+objects+or+…
421 * - 50
422- An object should be defined at block scope if its identifier only appears in a single function
423- `Rule 8.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_09.c>…
424 - Advisory
425- `DCL19-C <https://wiki.sei.cmu.edu/confluence/display/c/DCL19-C.+Minimize+the+scope+of+variable…
428 * - 51
429 - An inline function shall be declared with the static storage class
430- `Rule 8.10 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_10.c…
431 - Required
432 - N/A
435 * - 52
436- Within an enumerator list, the value of an implicitly-specified enumeration constant shall be u…
437- `Rule 8.12 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_12.c…
438 - Required
439- `INT09-C <https://wiki.sei.cmu.edu/confluence/display/c/INT09-C.+Ensure+enumeration+constants+m…
442 * - 53
443 - The restrict type qualifier shall not be used
444- `Rule 8.14 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_14.c…
445 - Required
446 - N/A
449 * - 54
450- The value of an object with automatic storage duration shall not be read before it has been set
451- `Rule 9.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_09_01.c>…
452 - Mandatory
453 - N/A
456 * - 55
457 - The initializer for an aggregate or union shall be enclosed in braces
458- `Rule 9.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_09_02.c>…
459 - Required
460 - N/A
463 * - 56
464 - Arrays shall not be partially initialized
465- `Rule 9.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_09_03.c>…
466 - Required
467 - N/A
470 * - 57
471 - An element of an object shall not be initialized more than once
472- `Rule 9.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_09_04.c>…
473 - Required
474 - N/A
477 * - 58
478- Where designated initializers are used to initialize an array object the size of the array shal…
479- `Rule 9.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_09_05.c>…
480 - Required
481 - N/A
484 * - 59
485 - Operands shall not be of an inappropriate essential type
486- `Rule 10.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_01.c…
487 - Required
488- `STR04-C <https://wiki.sei.cmu.edu/confluence/display/c/STR04-C.+Use+plain+char+for+characters+…
491 * - 60
492- Expressions of essentially character type shall not be used inappropriately in addition and sub…
493- `Rule 10.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_02.c…
494 - Required
495- `STR04-C <https://wiki.sei.cmu.edu/confluence/display/c/STR04-C.+Use+plain+char+for+characters+…
498 * - 61
499- The value of an expression shall not be assigned to an object with a narrower essential type or…
500- `Rule 10.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_03.c…
501 - Required
502- `STR04-C <https://wiki.sei.cmu.edu/confluence/display/c/STR04-C.+Use+plain+char+for+characters+…
505 * - 62
506- Both operands of an operator in which the usual arithmetic conversions are performed shall have…
507- `Rule 10.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_04.c…
508 - Required
509- `STR04-C <https://wiki.sei.cmu.edu/confluence/display/c/STR04-C.+Use+plain+char+for+characters+…
512 * - 63
513 - The value of an expression should not be cast to an inappropriate essential type
514- `Rule 10.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_05.c…
515 - Advisory
516 - N/A
519 * - 64
520- The value of a composite expression shall not be assigned to an object with wider essential type
521- `Rule 10.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_06.c…
522 - Required
523- `INT02-C <https://wiki.sei.cmu.edu/confluence/display/c/INT02-C.+Understand+integer+conversion+…
526 * - 65
527- If a composite expression is used as one operand of an operator in which the usual arithmetic c…
528- `Rule 10.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_07.c…
529 - Required
530- `INT02-C <https://wiki.sei.cmu.edu/confluence/display/c/INT02-C.+Understand+integer+conversion+…
533 * - 66
534- The value of a composite expression shall not be cast to a different essential type category or…
535- `Rule 10.8 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_10_08.c…
536 - Required
537- `INT02-C <https://wiki.sei.cmu.edu/confluence/display/c/INT02-C.+Understand+integer+conversion+…
540 * - 67
541- Conversions shall not be performed between a pointer to an incomplete type and any other type
542- `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_02.c…
543 - Required
544 - N/A
547 * - 68
548 - A cast shall not be performed between pointer to void and an arithmetic type
549- `Rule 11.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_06.c…
550 - Required
551 - N/A
554 * - 69
555 - A cast shall not be performed between pointer to object and a noninteger arithmetic type
556- `Rule 11.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_07.c…
557 - Required
558 - N/A
561 * - 70
562- A cast shall not remove any const or volatile qualification from the type pointed to by a point…
563- `Rule 11.8 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_08.c…
564 - Required
565- `EXP05-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP05-C.+Do+not+cast+away+a+const+quali…
568 * - 71
569 - The macro NULL shall be the only permitted form of integer null pointer constant
570- `Rule 11.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_11_09.c…
571 - Required
572 - N/A
575 * - 72
576 - The precedence of operators within expressions should be made explicit
577- `Rule 12.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_01.c…
578 - Advisory
579- `EXP00-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP00-C.+Use+parentheses+for+precedence…
582 * - 73
583- The right hand operand of a shift operator shall lie in the range zero to one less than the wid…
584- `Rule 12.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_02.c…
585 - Required
586 - N/A
589 * - 74
590 - Evaluation of constant expressions should not lead to unsigned integer wrap-around
591- `Rule 12.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_04.c…
592 - Advisory
593 - N/A
596 * - 75
597- The sizeof operator shall not have an operand which is a function parameter declared as “array …
598- `Rule 12.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_05.c…
599 - Mandatory
600 - N/A
603 * - 76
604 - Initializer lists shall not contain persistent side effects
605- | `Rule 13.1 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/mast…
606 …| `Rule 13.1 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/…
607 - Required
608 - N/A
611 * - 77
612- The value of an expression and its persistent side effects shall be the same under all permitte…
613- `Rule 13.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_02.c…
614 - Required
615 - N/A
618 * - 78
619- A full expression containing an increment (++) or decrement (--) operator should have no other …
620- `Rule 13.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_03.c…
621 - Advisory
622 - N/A
625 * - 79
626 - The result of an assignment operator should not be used
627- `Rule 13.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_04.c…
628 - Advisory
629 - N/A
632 * - 80
633- The right hand operand of a logical && or || operator shall not contain persistent side effects
634- | `Rule 13.5 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/mast…
635 …| `Rule 13.5 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/…
636 - Required
637- `EXP10-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP10-C.+Do+not+depend+on+the+order+of+…
640 * - 81
641- The operand of the sizeof operator shall not contain any expression which has potential side ef…
642- `Rule 13.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_06.c…
643 - Mandatory
644 - N/A
647 * - 82
648 - A loop counter shall not have essentially floating type
649- `Rule 14.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_01.c…
650 - Required
651 - N/A
654 * - 83
655 - A for loop shall be well-formed
656- `Rule 14.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_02.c…
657 - Required
658 - N/A
661 * - 84
662 - Controlling expressions shall not be invariant
663- `Rule 14.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_03.c…
664 - Required
665 - N/A
668 * - 85
669- The controlling expression of an if statement and the controlling expression of an iteration-st…
670- `Rule 14.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_04.c…
671 - Required
672 - N/A
675 * - 86
676 - The goto statement shall jump to a label declared later in the same function
677- `Rule 15.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_15_02.c…
678 - Required
679 - N/A
682 * - 87
683- Any label referenced by a goto statement shall be declared in the same block, or in any block e…
684- `Rule 15.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_15_03.c…
685 - Required
686 - N/A
689 * - 88
690 - The body of an iteration-statement or a selection-statement shall be a compound-statement
691- `Rule 15.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_15_06.c…
692 - Required
693- `EXP19-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP19-C.+Use+braces+for+the+body+of+an+…
696 * - 89
697 - All if else if constructs shall be terminated with an else statement
698- `Rule 15.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_15_07.c…
699 - Required
700 - N/A
703 * - 90
704 - All switch statements shall be well-formed
705- `Rule 16.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_01.c…
706 - Required
707 - N/A
710 * - 91
711- A switch label shall only be used when the most closely-enclosing compound statement is the bod…
712- `Rule 16.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_02.c…
713 - Required
714- `MSC20-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC20-C.+Do+not+use+a+switch+statement+…
717 * - 92
718 - An unconditional break statement shall terminate every switch-clause
719- `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c…
720 - Required
721 - N/A
724 * - 93
725 - Every switch statement shall have a default label
726- `Rule 16.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_04.c…
727 - Required
728 - N/A
731 * - 94
732- A default label shall appear as either the first or the last switch label of a switch statement
733- `Rule 16.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_05.c…
734 - Required
735 - N/A
738 * - 95
739 - Every switch statement shall have at least two switch-clauses
740- `Rule 16.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_06.c…
741 - Required
742 - N/A
745 * - 96
746 - A switch-expression shall not have essentially Boolean type
747- `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c…
748 - Required
749 - N/A
752 * - 97
753 - The features of <stdarg.h> shall not be used
754- `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c…
755 - Required
756- `ERR00-C <https://wiki.sei.cmu.edu/confluence/display/c/ERR00-C.+Adopt+and+implement+a+consiste…
759 * - 98
760 - Functions shall not call themselves, either directly or indirectly
761- `Rule 17.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_02.c…
762 - Required
763- `MEM05-C <https://wiki.sei.cmu.edu/confluence/display/c/MEM05-C.+Avoid+large+stack+allocations>…
766 * - 99
767 - A function shall not be declared implicitly
768- `Rule 17.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_03.c…
769 - Mandatory
770 - N/A
773 * - 100
774- All exit paths from a function with non-void return type shall have an explicit return statemen…
775- `Rule 17.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_04.c…
776 - Mandatory
777 - N/A
780 * - 101
781- The function argument corresponding to a parameter declared to have an array type shall have an…
782- `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c…
783 - Advisory
784 - N/A
787 * - 102
788 - The declaration of an array parameter shall not contain the static keyword between the [ ]
789- `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c…
790 - Mandatory
791 - N/A
794 * - 103
795 - The value returned by a function having non-void return type shall be used
796- `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c…
797 - Required
798 - N/A
801 * - 104
802- A pointer resulting from arithmetic on a pointer operand shall address an element of the same a…
803- `Rule 18.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_01.c…
804 - Required
805- `EXP08-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP08-C.+Ensure+pointer+arithmetic+is+u…
808 * - 105
809- Subtraction between pointers shall only be applied to pointers that address elements of the sam…
810- `Rule 18.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_02.c…
811 - Required
812- `EXP08-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP08-C.+Ensure+pointer+arithmetic+is+u…
815 * - 106
816- The relational operators >, >=, < and <= shall not be applied to objects of pointer type except…
817- `Rule 18.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_03.c…
818 - Required
819- `EXP08-C <https://wiki.sei.cmu.edu/confluence/display/c/EXP08-C.+Ensure+pointer+arithmetic+is+u…
822 * - 107
823 - Declarations should contain no more than two levels of pointer nesting
824- `Rule 18.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_05.c…
825 - Advisory
826 - N/A
829 * - 108
830- The address of an object with automatic storage shall not be copied to another object that pers…
831- | `Rule 18.6 example 1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/mast…
832 …| `Rule 18.6 example 2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/…
833 - Required
834 - N/A
837 * - 109
838 - Variable-length array types shall not be used
839- `Rule 18.8 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_08.c…
840 - Required
841 - N/A
844 * - 110
845 - An object shall not be assigned or copied to an overlapping object
846- `Rule 19.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_19_01.c…
847 - Mandatory
848 - N/A
851 * - 111
852- The ', or \ characters and the /* or // character sequences shall not occur in a header file na…
853- `Rule 20.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_02.c…
854 - Required
855 - N/A
858 * - 112
859 - The #include directive shall be followed by either a <filename> or "filename" sequence
860- `Rule 20.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_03.c…
861 - Required
862 - N/A
865 * - 113
866 - A macro shall not be defined with the same name as a keyword
867- `Rule 20.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_04.c…
868 - Required
869 - N/A
872 * - 114
873- Expressions resulting from the expansion of macro parameters shall be enclosed in parentheses
874- `Rule 20.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_07.c…
875 - Required
876- `PRE01-C <https://wiki.sei.cmu.edu/confluence/display/c/PRE01-C.+Use+parentheses+within+macros+…
879 * - 115
880- The controlling expression of a #if or #elif preprocessing directive shall evaluate to 0 or 1
881- `Rule 20.8 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_08.c…
882 - Required
883 - N/A
886 * - 116
887- All identifiers used in the controlling expression of #if or #elif preprocessing directives sha…
888- `Rule 20.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_09.c…
889 - Required
890 - N/A
893 * - 117
894- A macro parameter immediately following a # operator shall not immediately be followed by a ## …
895- `Rule 20.11 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_11.…
896 - Required
897 - N/A
900 * - 118
901- A macro parameter used as an operand to the # or ## operators, which is itself subject to furth…
902- `Rule 20.12 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_12.…
903 - Required
904 - N/A
907 * - 119
908 - A line whose first token is # shall be a valid preprocessing directive
909- `Rule 20.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_13.…
910 - Required
911 - N/A
914 * - 120
915- All #else, #elif and #endif preprocessor directives shall reside in the same file as the #if, #…
916- `Rule 20.14 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_14.…
917 - Required
918 - N/A
921 * - 121
922 - #define and #undef shall not be used on a reserved identifier or reserved macro name
923- `Rule 21.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_01.c…
924 - Required
925 - N/A
928 * - 122
929 - A reserved identifier or macro name shall not be declared
930- `Rule 21.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_02.c…
931 - Required
932 - N/A
935 * - 123
936 - The memory allocation and deallocation functions of <stdlib.h> shall not be used
937- `Rule 21.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_03.c…
938 - Required
939- `MSC24-C <https://wiki.sei.cmu.edu/confluence/display/c/MSC24-C.+Do+not+use+deprecated+or+obsol…
942 * - 124
943 - The standard header file <setjmp.h> shall not be used
944- `Rule 21.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_04.c…
945 - Required
946 - N/A
949 * - 125
950 - The Standard Library input/output functions shall not be used
951- `Rule 21.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_06.c…
952 - Required
953 - N/A
956 * - 126
957 - The atof, atoi, atol and atoll functions of <stdlib.h> shall not be used
958- `Rule 21.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_07.c…
959 - Required
960 - N/A
963 * - 127
964 - The library functions bsearch and qsort of <stdlib.h> shall not be used
965- `Rule 21.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_09.c…
966 - Required
967 - N/A
970 * - 128
971 - The standard header file <tgmath.h> shall not be used
972- `Rule 21.11 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_11.…
973 - Required
974 - N/A
977 * - 129
978 - The exception handling features of <fenv.h> should not be used
979- `Rule 21.12 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_12.…
980 - Advisory
981 - N/A
984 * - 130
985- Any value passed to a function in <ctype.h> shall be representable as an unsigned char or be th…
986- `Rule 21.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_13.…
987 - Mandatory
988 - N/A
991 * - 131
992 - The Standard Library function memcmp shall not be used to compare null terminated strings
993- `Rule 21.14 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_14.…
994 - Required
995 - N/A
998 * - 132
999- The pointer arguments to the Standard Library functions memcpy, memmove and memcmp shall be poi…
1000- `Rule 21.15 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_15.…
1001 - Required
1002 - N/A
1005 * - 133
1006- The pointer arguments to the Standard Library function memcmp shall point to either a pointer t…
1007- `Rule 21.16 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_16.…
1008 - Required
1009 - N/A
1012 * - 134
1013- Use of the string handling functions from <string.h> shall not result in accesses beyond the bo…
1014- `Rule 21.17 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_17.…
1015 - Mandatory
1016 - N/A
1019 * - 135
1020 - The size_t argument passed to any function in <string.h> shall have an appropriate value
1021- `Rule 21.18 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_18.…
1022 - Mandatory
1023 - N/A
1026 * - 136
1027- The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strer…
1028- `Rule 21.19 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_19.…
1029 - Mandatory
1030 - N/A
1033 * - 137
1034- The pointer returned by the Standard Library functions asctime, ctime, gmtime, localtime, local…
1035- `Rule 21.20 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_20.…
1036 - Mandatory
1037 - N/A
1040 * - 138
1041- All resources obtained dynamically by means of Standard Library functions shall be explicitly r…
1042- `Rule 22.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_01.c…
1043 - Required
1044 - N/A
1047 * - 139
1048- A block of memory shall only be freed if it was allocated by means of a Standard Library functi…
1049- `Rule 22.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_02.c…
1050 - Mandatory
1051 - N/A
1054 * - 140
1055- The same file shall not be open for read and write access at the same time on different streams
1056- `Rule 22.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_03.c…
1057 - Required
1058 - N/A
1061 * - 141
1062 - There shall be no attempt to write to a stream which has been opened as read-only
1063- `Rule 22.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_04.c…
1064 - Mandatory
1065 - N/A
1068 * - 142
1069 - A pointer to a FILE object shall not be dereferenced
1070- `Rule 22.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_05.c…
1071 - Mandatory
1072 - N/A
1075 * - 143
1076- The value of a pointer to a FILE shall not be used after the associated stream has been closed
1077- `Rule 22.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_06.c…
1078 - Mandatory
1079 - N/A
1082 * - 144
1083- The macro EOF shall only be compared with the unmodified return value from any Standard Library…
1084- `Rule 22.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_07.c…
1085 - Required
1086 - N/A
1089 * - 145
1090 - The value of errno shall be set to zero prior to a call to an errno-setting-function
1091- `Rule 22.8 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_08.c…
1092 - Required
1093 - N/A
1096 * - 146
1097 - The value of errno shall be tested against zero after calling an errno-setting-function
1098- `Rule 22.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_09.c…
1099 - Required
1100 - N/A
1103 * - 147
1104- The value of errno shall only be tested when the last function to be called was an errno-settin…
1105- `Rule 22.10 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_10.…
1106 - Required
1107 - N/A
1116 --------
1121 -----------
1129 ---------
1131 Excluding declarations from the header based on compile-time options may prevent
1142 --------
1147 -----------
1162 .. list-table::
1163 :header-rows: 1
1165 * - Offensive Terms
1166 - Recommended Replacements
1168 * - ``{master,leader} / slave``
1169 - - ``{primary,main} / {secondary,replica}``
1170 - ``{initiator,requester} / {target,responder}``
1171 - ``{controller,host} / {device,worker,proxy,target}``
1172 - ``director / performer``
1173 - ``central / peripheral``
1175 * - ``blacklist / whitelist``
1176 - * ``denylist / allowlist``
1180 * - ``grandfather policy``
1181 - * ``legacy``
1183 * - ``sanity``
1184 - * ``coherence``
1189 ---------
1195 .. _Code of Conduct: https://github.com/zephyrproject-rtos/zephyr/blob/main/CODE_OF_CONDUCT.md
1199 ------
1203 .. list-table::
1204 :header-rows: 1
1206 * - Area
1207 - Selected Replacements
1208 - Status
1210 * - :ref:`Bluetooth <bluetooth_api>`
1211 - See `Bluetooth Appropriate Language Mapping Tables`_
1212 -
1214 * - CAN
1215 - This `CAN in Automation Inclusive Language news post`_ has a list of general
1218 -
1220 * - eSPI
1221 - * ``master / slave`` => ``controller / target``
1222 - Refer to `eSPI Specification`_ for new terminology
1224 * - gPTP
1225 - * ``master / slave`` => TBD
1226 -
1228 * - :ref:`i2c_api`
1229 - * ``master / slave`` => TBD
1230 - NXP publishes the `I2C Specification`_ and has selected ``controller /
1238 * - :ref:`i2s_api`
1239 - * ``master / slave`` => TBD
1240 -
1242 * - SMP/AMP
1243 - * ``master / slave`` => TBD
1244 -
1246 * - :ref:`spi_api`
1247 - * ``master / slave`` => ``controller / peripheral``
1249 - The Open Source Hardware Association has selected these replacement
1252 * - :ref:`twister_script`
1253 - * ``platform_whitelist`` => ``platform_allow``
1255 -
1257 .. _Inclusive Language Label: https://github.com/zephyrproject-rtos/zephyr/issues?q=label%3A%22Incl…
1258 .. _I2C Specification: https://www.nxp.com/docs/en/user-guide/UM10204.pdf
1259 …te Language Mapping Tables: https://specificationrefs.bluetooth.com/language-mapping/Appropriate_L…
1260 …ution to Redefine SPI Signal Names: https://www.oshwa.org/a-resolution-to-redefine-spi-signal-name…
1261 .. _CAN in Automation Inclusive Language news post: https://www.can-cia.org/news/archive/view/?tx_n…
1262 .. _CAN in Automation Inclusive Language: https://can-newsletter.org/canopen/categories/
1263 …I Specification: https://downloadmirror.intel.com/27055/327432%20espi_base_specification%20R1-5.pdf
1270 --------
1275 -----------
1280 Zephyr-specific namespace, re-defined using ``#undef``, or conditionally
1285 This rule applies to Zephyr as a project in general, regardless of the time of
1287 commonly used in several other well-known open source projects then the
1289 non-measurable component to what "commonly used" means, the ultimate goal is
1291 Finally, this rule applies to inter-module name collisions as well: in that case
1293 module-specific versions of the macro name that collides.
1296 ---------
1302 main project, it should implement the non-namespaced versions of the
1313 --------
1318 -----------
1324 .. csv-table:: List of allowed libc functions and macros in the Zephyr kernel
1331 assert(),ISO/IEC 9899:2011
1382 `strnlen()`_,POSIX.1-2008
1390 time(),ISO/IEC 9899:2011
1422 ---------
1427 Project, to allow self-contained testing and verification of the kernel and
1439 --------
1444 -----------
1447 shall be limited to the functions, excluding the Annex K "Bounds-checking
1458 The following non-ISO 9899:2011, hereinafter referred to as non-standard,
1462 .. csv-table:: List of allowed non-standard libc functions
1466 `gmtime_r()`_,POSIX.1-2001
1467 `strnlen()`_,POSIX.1-2008
1468 `strtok_r()`_,POSIX.1-2001
1470 All non-standard functions and macros listed above must be implemented by the
1475 Adding a new non-standard function from common C standard libraries to the
1481 ---------
1484 functions and macros that are defined by the standards and de-facto standards
1488 include the support for these non-standard functions, and therefore using
1489 these functions can lead to compatibility issues with the third-party
1492 .. _main Zephyr repository: https://github.com/zephyrproject-rtos/zephyr