Main Content

AUTOSAR C++14 Rule A2-13-2

String literals with different encoding prefixes shall not be concatenated

Description

Rule Definition

String literals with different encoding prefixes shall not be concatenated.

Rationale

Narrow string literals are enclosed in double quotes without a prefix. Wide string literals are enclosed in double quotes with a prefix L outside the quotes. See string literals.

Concatenation of narrow and wide string literals can lead to undefined behavior.

Polyspace Implementation

The rule checker reports violations on concatenations of wide string literals with narrow string literals.

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

char array[] = "Hello" "World";
wchar_t w_array[] = L"Hello" L"World";
wchar_t mixed[] = "Hello" L"World"; //Noncompliant

In this example, in the initialization of the array mixed, the narrow string literal "Hello" is concatenated with the wide string literal L"World".

Check Information

Group: Lexical Conventions
Category: Required, Automated

Version History

Introduced in R2019a