Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rules 16-2-1 and 16-2-2
#1
Hi,

strictly interpreted, these rules ban conditional compilation, rendering rules 16-1-1 and 16-1-2 mute.
E.g.:

Code:
#ifdef FEATURE_X
// some code
#endif

In addition, there appears to be no such rule in MISRA C 2012 (presumably, because it is a widely used feature in embedded systems):

Rule Mapping to MISRA C 2012
16-0-2 [Required] n.a. but namespaces are not available in C
16-1-1 [Required] n.a.
16-2-1 [Required] n.a.prohibits conditional compilation which is allowed in C
16-2-2 [Required] n.a.prohibits conditional compilation which is allowed in C

I would expect that a feature like the preprocessor, which is equal in C and C++, is treated equally across all MISRA standards.
Is there any chance this will be corrected/clarified in a new version or technical corrigendum?
<t></t>
Reply
#2
For the sake of completeness, these are the rules which are consistent between MISRA C++ and MISRA C:

Rule Mapping to MISRA C 2012
16-0-1 [Required] 20.1 [Advisory]
16-0-3 [Required] 20.5 [Advisory]
16-0-4 [Required] Dir 4.9 [Advisory]
16-0-5 [Required] 20.6 [Required]
16-0-6 [Required] 20.7 [Required]
16-0-7 [Required] 20.9 [Required]
16-0-8 [Required] 20.13 [Required]
16-1-2 [Required] 20.14 [Required]
16-2-3 [Required] Dir 4.10 [Required]
16-2-4 [Required] 20.2 [Required]
16-2-5 [Advisory] 20.2 [Required]
16-2-6 [Required] 20.3 [Required]
16-3-1 [Required] 20.11 [Required]
16-3-2 [Advisory] 20.10 [Advisory]
<t></t>
Reply
#3
Yes, currently you need a deviation. This is being reviewed
Posted by and on behalf of
the MISRA C++ Working Group
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)