The analyzer has detected a macro whose name overrides a keyword or reserved identifier.
Example:
#define sprintf std::printf
Because of the name collision here, calls to the standard function 'sprintf' will be replaced with calls to 'printf' after preprocessing. Such replacement will lead to incorrect work of the program.
This diagnostic also informs the developer when overridden macros get deleted.
Example:
#undef assert
The diagnostic ignores overridden keywords if their semantics is unchanged.
Examples:
#define inline __inline
#define inline __forceinline
#define template extern template
This diagnostic is classified as:
|