Lines Matching +full:files +full:- +full:exclude
13 but not enforced. Rules are not yet enforced in CI and pull-requests cannot be
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 -----------
1123 Do not conditionally compile function declarations in header files. Do not
1124 conditionally compile structure declarations in header files. You may
1125 conditionally exclude fields within structure definitions to avoid wasting
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
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
1382 `strnlen()`_,POSIX.1-2008
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
1451 The "Zephyr codebase" in this context refers to all embedded source code files committed
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