GitHub
CERT Secure Coding

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

Tool

Version

Checker

Description

Astrée
25.10
long-suffixFully checked
Axivion Bauhaus Suite

7.2.0

CertC-DCL16
CodeSonar
9.1p0
LANG.TYPE.CSUFConfusing literal suffix

ECLAIR

1.2

CC2.DCL16

Fully implemented

Helix QAC

2025.2

C1280
LDRA tool suite
9.7.1
252 SFully implemented
Parasoft C/C++test
2025.2

CERT_C-DCL16-a

The lowercase form of 'L' shall not be used as the first character in a literal suffix

PC-lint Plus

1.4

620

Fully 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: