MISRA Discussion Forums
Rule 2.5 Does #undef count as a "use" - Printable Version

+- MISRA Discussion Forums (https://forum.misra.org.uk)
+-- Forum: MISRA C (https://forum.misra.org.uk/forumdisplay.php?fid=4)
+--- Forum: MISRA C:2012 and MISRA C:2023 guidelines (https://forum.misra.org.uk/forumdisplay.php?fid=21)
+---- Forum: 8.2 Unused code (https://forum.misra.org.uk/forumdisplay.php?fid=157)
+---- Thread: Rule 2.5 Does #undef count as a "use" (/showthread.php?tid=1114)



Rule 2.5 Does #undef count as a "use" - misra-c - 09-10-2014

Rule 2.5 Is #undef considered a “use” of a macro”?
For example
Code:
#define M1 This
   #define M2 That
   #undef M1
   use( M2 );
Is 'M1' unused and therefore violate rule 2.5, or does the #undef count as a use of M1?


Re: Rule 2.5 Does #undef count as a "use" - misra-c - 09-10-2014

Similarly:
Code:
#define M3 first
   #undef M3
   #define M3 second
   use( M3 );
Is the first #define of M3 unused?


Re: Rule 2.5 Does #undef count as a "use" - misra-c - 09-10-2014

#undef is considered to be a use of the macro. There are no violations of rule 2.5 in these examples


Re: Rule 2.5 Does #undef count as a "use" - xiangke - 09-06-2017

Rule 2.5 Is #undef considered a “use” of a macro”?
For example
CODE: SELECT ALL
#define M1 This
#define M2 That
#undef M1
use( M2 );

Is 'M1' unused and therefore violate rule 2.5, or does the #undef count as a use of M1?

using #undef is a violation for Rule 20.5. #undef used is not appreciated for MISRA C 2012. so, For me, #undef count can not be recognized as a use of M1? the above code should is a violation for rule 2.5.