Main Content

MISRA C++:2023 Rule 5.13.6

An integer-literal of type long long shall not use a single L or l in any suffix

Since R2024b

Description

Rule Definition

An integer-literal of type long long shall not use a single L or l in any suffix.

Rationale

A single L or l as suffix can indicate either long or long long. The use of LL for long long literals makes the type more explicit, especially when the literal is assigned to variables with auto-deduced types.

Polyspace Implementation

The rule checker reports violations if an integer literal of type long long uses the suffix L or l.

Troubleshooting

If you expect a rule violation but Polyspace® does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.

Examples

expand all

In this example:

  • The literal assigned to v1 is compliant because it has type long and uses the suffix L.

  • The literal assigned to v2 is noncompliant because it has type long long and uses the suffix L.

  • The literal assigned to v3 is compliant because it has type unsigned long long and uses the suffix ull.

  • The literal assigned to v4 is compliant because it has type long long and does not use a suffix.

long v1 = 11111L;               // Compliant
long long v2 = 2222222222L;     // Noncompliant
long long v3 = 33333333333ull;  // Compliant
long long v4 = 444444444444;    // Compliant

Check Information

Group: Lexical Conventions
Category: Required

Version History

Introduced in R2024b