waivers.lnt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /* MISRA checks are not performed in header files marked as libraries or
  2. vendor-provided files or belonging to other subsystems.*/
  3. -e686 /* Silencing warning on -elib(*) */
  4. -elib(*) /* No checks on library files. */
  5. +libclass(angle,ansi)
  6. +libh(core_cm4.h)
  7. +libh(stm32*.h)
  8. +libh(*_lld.h)
  9. /* Reinforcing type checking for some critical types even if not required by
  10. MISRA.*/
  11. -strong(AJX, systime_t)
  12. -strong(AJX, rtcnt_t)
  13. -strong(AJX, rttime_t)
  14. -strong(AJX, syssts_t)
  15. -strong(AJX, msg_t)
  16. -strong(AJX, tmode_t)
  17. -strong(AJX, tstate_t)
  18. -strong(AJX, trefs_t)
  19. -strong(AJX, tslices_t)
  20. -strong(AJX, tprio_t)
  21. -strong(AJX, cnt_t)
  22. -strong(AJX, ucnt_t)
  23. -strong(AJX, eventid_t)
  24. -strong(AJX, eventmask_t)
  25. -strong(AJX, eventflags_t)
  26. /* Permitting anonymous unions.*/
  27. +fan
  28. /* Silencing common non-MISRA info generated by PCLint in -w3 mode. All of
  29. them have been controlled. Other infos have been fixed in the code.
  30. Remove temporarily the following -e in order to perform extra code quality
  31. checks.*/
  32. -e526 -e537 -e552
  33. -e611 -e613
  34. -e714 -e716 -e717 -e749 -e750 -e754 -e757 -e758 -e759 -e766 -e768 -e769 -e773 -e778 -e793
  35. -e826 -e830 -e835 -e845
  36. /* Removing *advisory* directives and rules that would negatively impact
  37. code readability or not avoidable.*/
  38. -e970 /* Dir-4.6 */
  39. -e9045 /* Dir-4.8 */
  40. -e9026 /* Dir-4.9 */
  41. -e756 /* Rule-2.3 */
  42. -e9058 /* Rule-2.4 */
  43. -e755 /* Rule-2.5 */
  44. -e9003 /* Rule-8.9 */
  45. -e9067 /* Rule-8.11 */
  46. -e818 /* Rule 8.13 */
  47. -e9078 /* Rule-11.4 */
  48. -e9079 /* Rule-11.5 */
  49. -e9049 /* Rule-13.3 */
  50. -e9084 /* Rule-13.4 */
  51. -e801 /* Rule-15.1 */
  52. -e9011 /* Rule-15.4 */
  53. -e904 /* Rule-15.5 */
  54. -e9044 /* Rule-17.8 */
  55. -e9016 /* Rule-18.4 */
  56. -e844 -e954 /* Rule-18.13 */
  57. -e9018 /* Rule-19.2 */
  58. -e9021 /* Rule-20.5 */
  59. -e9024 /* Rule-20.10 */
  60. /* Waiver Directive 2.1, Rule 1.1, Rule 1.2, assembler is allowed in some
  61. modules.*/
  62. -e950
  63. /* Waiver Directive 4.10, PCLint is confused by the guard used in the CMSIS
  64. header files, the guard is present, suppressing the noise.*/
  65. -e451
  66. /* Waiver Rule 2.2, PCLint marks as pure functions that contain just asm
  67. code, this does not mean that those functions do nothing.*/
  68. -e522
  69. /* Waiver Rule 3.1, the sequence "//" is mandated by standard license
  70. headers included on top of all source files. The sequence is part of the
  71. license URL and cannot be removed.*/
  72. -e9059
  73. /* Waiver Rule 8.4, this rule is disabled for the main() function only because
  74. it, of course, does not have nor requires a prior declaration.*/
  75. -esym(9075, main)
  76. /* Waiver Rule 8.7, the static analyzer has no visibility of functions called
  77. from asm modules.*/
  78. -e765
  79. /* Waiver Rule 11.1, casts of function pointers are required by system
  80. design.*/
  81. -e9074
  82. /* Waiver Rule 11.3, casts among different types are required by system
  83. design.*/
  84. -e740 /* Wrongly marked as 1.3 in PCLint 9.00L.*/
  85. -e9087
  86. /* Waiver Rule 11.6, cast from integer to pointer is very commonly used
  87. when accessing peripherals where the numeric address of the registers
  88. block is cast to a structure pointer.*/
  89. -e923
  90. /* Waiver Rule 16.1, missing break into case. It is a common occurrence and
  91. thoroughly checked.*/
  92. /* Waiver Rule 16.3, missing break into case. It is a common occurrence and
  93. thoroughly checked.*/
  94. -e9090
  95. -e9077
  96. -e9042
  97. -e616
  98. -e825
  99. /* Waiver Rule 18.2, pointers arithmetic is required by system design and
  100. deemed safe.*/
  101. /* Waiver Rule 18.3, comparisons among pointers is required by system design
  102. and deemed safe.*/
  103. -e946
  104. -e947
  105. /* Waiver Rule 21.1, this is an operating system, its identifiers are
  106. equivalent in importance to compiler symbols.*/
  107. -e9071