[previous] 0850 [next] [C99] Macro argument is empty.
ISO C99 Language features REFERENCE - ISO:C90-6.8.3 Macro Replacement - Semantics; ISO:C99 6.10.3

The argument supplied in this macro invocation is empty, i.e. it consists of no tokens. This is permitted in the ISO:C99 standard but is undefined in the ISO:C90 standard.

For example:


/*PRQA S 2017,3122,3205,3408,3429,3602,3625 ++*/

#define STR(text) #text

extern void func(void)
{

    const char * msg = STR();           /* Message 0850 - the macro expands to "" in C99 */

}


MISRA-C:2004 Rules applicable to message 0850:

Rule  1.1  (Required) All code shall conform to ISO/IEC 9899:1990 C programming language, ISO 9899, amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2: 1996192
Rule  19.8  (Required) A function-like macro shall not be invoked without all of its arguments.


QA·C Source Code Analyser 8.1
MISRA-C:2004 Compliance Module 3.2
© 2012 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index | MISRA-C:2004 Rule Index Contents