C and C++


LANG.STRUCT.UUMACRO : Unused Macro

Summary

A preprocessor macro is defined but not instantiated within the scope of the definition.

Properties

Class Name Unused Macro
Significance style
Mnemonic LANG.STRUCT.UUMACRO
Categories
MisraC2023 MisraC2023:2.5 A project should not contain unused macro declarations
Misra2012 Misra2012:2.5 A project should not contain unused macro declarations
CWE CWE:561 Dead Code
CERT-C CERT-C:MSC12-C Detect and remove code that has no effect or is never executed
DISA-3r10 DISA-3r10:V-6149 The designer will ensure the application does not contain source code that is never invoked during operation, except for software components and libraries from approved third-party products.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Unused Macro"

Example

Suppose the analyzed project has a single source file, fileA.c.

#define macro1 1  /* 'Unused Macro' warning issued here */   
#define macro2 1                               /* used in body of myfunc() */  

int myfunc(void){return macro2;}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.