C and C++


LANG.FUNCS.SAP : Static Array Parameter

Summary

A function has an array parameter whose declaration includes the static keyword between the [ ].

This check only applies to C code built in C99 mode: C90 and C++ do not include static array parameters.

See also Array Parameter.

Properties

Class Name Static Array Parameter
Significance reliability
Mnemonic LANG.FUNCS.SAP
Categories
MisraC2023 MisraC2023:17.6 The declaration of an array parameter shall not contain the static keyword between the [ ]
Misra2012 Misra2012:17.6 The declaration of an array parameter shall not contain the static keyword between the [ ]
AUTOSARC++14 AUTOSARC++14:A18-1-1 C-style arrays shall not be used.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default, and require the unnormalized C ASTs for the project. To enable them, add the following WARNING_FILTER rule and RETAIN_UNNORMALIZED_C_AST specification to the project configuration file.
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Static Array Parameter"
Note that retaining the unnormalized ASTs will increase the disk space used to store the project representation, and may make the analysis take longer.

Example

void decl_static(char a[static 20]);  /* 'Static Array Parameter' warning issued here */

void decl_nostatic(char a[20]);                            /* no static keyword between [ ] */

void decl_nosize(char a[]);                                /* no static keyword between [ ] */

const int ten=10;

void def(char a[static ten],          /* 'Static Array Parameter' warning issued here */
         char b[ten]){                                     /* no static keyword between [ ] */
    return;
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.