Does #define CAL_TP const volatile violate Rule 19.4

6.19 Preprocessing Directives

Moderators: misra-c, david ward

Posts: 1
Joined: Fri Aug 23, 2013 2:25 pm
Company: BorgWarner

Does #define CAL_TP const volatile violate Rule 19.4

Postby steveudog » Thu Apr 27, 2017 1:47 pm

Is it permissible to have more than one attribute in the define?

My code is auto-generated using Simulink. It contains the define:
#define CAL_TP const volatile

Our MISRA checker determined this to be a violation of Rule 19.4, but some of my colleagues dispute this.
They think it is a flaw in the checker.
Is this a violation?

Posts: 547
Joined: Thu Jan 05, 2006 1:11 pm

Re: Does #define CAL_TP const volatile violate Rule 19.4

Postby misra-c » Wed Jun 14, 2017 9:18 am

Rule 19.4 only permits a macro that expands to a single "type qualifier". i.e. "const" or "volatile". Therefore the above example violates rule 19.4

However, it should be noted that this rule was relaxed in MISRA C:2012 and the above example would not violate MISRA C:2012 rules. If you are continuing to use MISRA-C:2004, then the justification for a deviation for this code could include that this Rule has been relaxed for MISRA C:2012.
Posted by and on behalf of
the MISRA C Working Group

Return to “6.19 Preprocessing Directives”

Who is online

Users browsing this forum: No registered users and 1 guest