Skip to main content
GitHub

DCL16-C. Use "L," not "l," to indicate a long value

Lowercase letter l (ell) can easily be confused with the digit 1 (one). This can be particularly confusing when indicating that an integer literal constant is a long value. This recommendation is similar to DCL02-C. Use visually distinct identifiers . Likewise, you should use uppercase LL rather than lowercase ll when indicating that an integer literal constant is a long long value.

To be precise when using modifiers to indicate the type of an integer literal, the first character may not be l .  It may be L , u , or U . Subsequent characters have no strict case requirements.

Noncompliant Code Example

This noncompliant example highlights the result of adding an integer and a long value even though it appears that two integers 1111 are being added:

Non-compliant code
 printf("Sum is %ld\n", 1111 + 111l);

Compliant Solution

The compliant solution improvises by using an uppercase L instead of lowercase l to disambiguate the visual appearance:

Compliant code
 printf("Sum is %ld\n", 1111 + 111L);

Risk Assessment

Confusing a lowercase letter l (ell) with a digit 1 (one) when indicating that an integer denotation is a long value could lead to an incorrect value being written into code.

Recommendation Severity Likelihood Detectable Repairable Priority Level
DCL16-C Low Unlikely Yes Yes P3 L3

Automated Detection

ToolVersionCheckerDescription
Astrée
25.10
long-suffixFully checked
Axivion Suite
7.12.0
CertC-DCL16
CodeSonar
9.2p0
LANG.TYPE.CSUFConfusing literal suffix
ECLAIR
1.2
CC2.DCL16Fully implemented
Helix QAC
2025.2
C1280
LDRA tool suite
9.7.1
252 SFully implemented
Parasoft C/C++test
2026.1
CERT_C-DCL16-aThe lowercase form of 'L' shall not be used as the first character in a literal suffix
PC-lint Plus
1.4
620Fully supported
Polyspace Bug Finder
R2025b
CERT C: Rec. DCL16-CChecks for use of lowercase "l" in literal suffix (rec. fully covered)
RuleChecker
25.10
long-suffixFully checked
SonarQube C/C++ Plugin
3.11
LiteralSuffix

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

SEI CERT C++ Coding StandardDCL16-CPP. Use "L," not "l," to indicate a long value
MISRA C:2012Rule 7.3 (required)

Bibliography

[ Lockheed Martin 2005 ]AV Rule 14, Literal suffixes shall use uppercase rather than lowercase letters

Attachments: