Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 19.4 Does "#define XY -1" violate 19.4
#1
Dear MISRA Team,

as I found out, 2 out of 3 commercial MISRA checking tools report the statement "#define XY -1" to be a violation of rule 19.4. I am not sure whether or not this #define actually violates rule 19.4 but if so I would not fully understand the risk associated with this particular #define statement. Could someone please help and discuss if this is a violation and why it should be avoided?

Thank your for your support!
<t></t>
Reply
#2
I'm not surprised it's rejected. "-1" isn't an integer literal, it's the unary minus operator applied to a literal. This means that it's an expression and should be parenthesised.

I can't think of any cases where using it gives a surprisingly wrong answer, but it does allow things to compile that look wrong, such as:-
Code:
    int b = 3 XY;

Simon
<t></t>
Reply
#3
The MISRA working group agree with the above response.
Posted by and on behalf of the MISRA C Working Group
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)