C and C++


LANG.ID.NU.TYPE : Non-unique Identifiers: Typedef

Summary

A typedef statement specifies a type name that is identical to one or more other identifiers.

See Identifier Classes for related warning classes.

Properties

Class Name Non-unique Identifiers: Typedef
Significance style
Mnemonic LANG.ID.NU.TYPE
Categories
MisraC2023 MisraC2023:5.6 A typedef name shall be a unique identifier
Misra2012 Misra2012:5.6 A typedef name shall be a unique identifier
Misra2004 Misra2004:5.3 A typedef name shall be a unique identifier
MisraC++2008 MisraC++2008:2-10-3 A typedef name (including qualification, if any) shall be a unique identifier.
CWE CWE:710 Improper Adherence to Coding Standards
CERT-C CERT-C:DCL23-C Guarantee that mutually visible identifiers are unique
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="Non-unique Identifiers: Typedef"

Example

Suppose fileA.c and fileB.c are both in the analyzed software (but not necessarily in the same compilation unit).

/* LANG.ID.NU.TYPE.a.c */

#define typedefA 1
extern int typedefB;
void typedefC(void);
/* LANG.ID.NU.TYPE.b.c */

typedef int typedefA; /* 'Non-unique Identifiers: Typedef' warning issued here */
typedef int typedefB; /* 'Non-unique Identifiers: Typedef' warning issued here */
typedef int typedefC; /* 'Non-unique Identifiers: Typedef' warning issued here */

Relevant Configuration File Parameters

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