Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated reference from C11->C23.

...

The C Standard, 5.1.1.2, paragraph 4 [ISO/IEC 9899:20112024], says

If a character sequence that matches the syntax of a universal character name is produced by token concatenation (6.10.35.3), the behavior is undefined.

...

checked

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V
universal-character-name-concatenation
Fully implemented

Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-PRE30Fully implemented
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V
LANG.PREPROC.PASTE
LANG.PREPROC.PASTEHASH
Macro uses ## operator
## follows # operator
Cppcheck

Include Page
Cppcheck_V
Cppcheck_V

preprocessorErrorDirectiveFully implemented
Cppcheck Premium

Include Page
Cppcheck Premium_V
Cppcheck Premium_V

preprocessorErrorDirectiveFully implemented
Helix QAC

Include Page
Helix QAC_V
Helix QAC_V

C0905 

C++0064,C++0080

Fully implemented
Klocwork

Include Page
Klocwork_V
Klocwork_V

MISRA.DEFINE.SHARP

Fully implemented
LDRA tool suite
Include Page
LDRA_V
LDRA_V

573 S

Fully implemented

Parasoft C/C++test

Include Page
Parasoft_V
Parasoft_V

CERT_C-PRE30-aAvoid token concatenation that may produce universal character names

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

CERT C: Rule PRE30-CChecks for universal character name from token concatenation (rule fully covered)
RuleChecker
Include Page
RuleChecker_V
RuleChecker_V
universal-character-name-concatenation
Fully checked

Related Vulnerabilities

Search for vulnerabilities resulting from the violation of this rule on the CERT website.

Bibliography

[ISO/IEC 10646-2003]
[ISO/IEC 9899:20112024]Subclause 5.1.1.2, "Translation Phases"

...