Static Code Analyzer Options

This dialog box contains static source analysis options, which are also used for static analysis of Source Code Metrics. It is divided into five tabs

General

C Source

Lint Warnings

MISRA C

MISRA C Warnings

General

This tab contains options that determine general source code static code analysis parameters.

Static Code Analyzer Options - General Tab

Warnings

Source file classes for which warnings will be generated. The options are: Disabled, Disabled For All Headers, Disabled For Standard Library Headers, and Enabled.

Show unresolved externals

Determines whether a lack of definition for found declarations will be reported. This is useful if the project contains parts of the code for which there is no source. (Real Time OS).

Show unused symbols

Enables warnings for unused symbols.

Show global/static's used in one module/function

Enables warnings for global/static symbols used in a module/function.

Check headers on update

Determines if the header files are to be checked when updating the database.

Use default search

If this check box isn't selected, #include "..." behaves like #include <...>.

Use search paths

Determines if the use of logical drive identifiers is permitted in search paths for #include directives. If the check box is selected, a drive identifier is substituted with a value defined in "Environment Substitutes". If there is no such definition, the drive identifier is simply eliminated from the path. For example, if the path has one of the following forms:

:drive:the_path_rest

drive::the_path_rest (recognized only if "Use VAX/VMS drives" is checked) and there is one of the following definitions in "Environment Substitutes": :drive:=substitution, drive:=substitution ordrive=substitution the resulting path will have the form substitution\the_path_rest.

Use VAX/VMS drives

Determines if the syntax drive:: is legal in specifying paths.

Errors

The maximum number of errors that will be reported before analysis is completed. If this number is set to 0 there is no limit for errors.

Warnings

The maximum number of warnings that will be reported before analysis is completed. If this number is set to 0 there is no limit for warnings.

Environment Substitutes

Apart from environment variables defined in the Windows environment, it is possible, in "Environment Substitutes", also to define "DA-C environment variables" in the form of:

env_var=env_string

These substitutions are also necessary if the environment variables of your development environment have been set only in the terminal window in which you build project binaries. As the variables are not known at Windows level, you will have to define them in DA-C, in "Environment Substitutes", if you intend to use them.

C Source

This tab contains options for adjusting C source file analysis to the C dialect (compiler) used in a particular project.

Static Code Analyzer Options - C Source tab

Maximum identifier length

This is the number of significant characters in the identifiers. The remaining characters are ignored. The default value is 31 (according to MISRA C).

Special table processing

It determines the treatment of arrays of pointers to functions in the analysis. If this check box is selected, such variables are treated as functions, otherwise they are treated in the usual way.

Defines/Control file

It determines the list of macro definitions to be set at the beginning of module preprocessing. Definitions may have the form of:

MACRONAME

(1 is the assumed value), or

MACRONAME=MACROTEXT

A semicolon separates definitions. If macro includes the ";" character, a backslash should precede it: "\;". Leading and trailing white spaces are stripped in MACROTEXT.

This field may contain the name of the control file (absolute or relative in relation to project root) with the prefix "@". Control file lines beginning with -i or -I in the continuation contain the list of directories for searching #include files, separated by a semicolon. The control file lines beginning with -d or -D in the continuation contain the list of macro definitions, as described in the previous paragraph. The remaining control file lines are ignored.

Check for nested comments

Activates checking for nested C style comments, for example /* /* ... */ */.

C++ comments

It determines whether C++ comments (beginning with "//") are to be recognized while analyzing the source code.

Traditional (pre-ANSI)

It determines if the pre-ANSI preprocessor is to be used. For the traditional preprocessor, a comment is equivalent to nothing, while for the ANSI preprocessor it is a white space. The traditional preprocessor does not delete comments within the #define directive, it does not recognize "#" and "##" operators, and requires an initial "#" in a directive at the very beginning of the line. It allows specification foo() if a macro foo takes a single argument, and permits a macro to be expanded recursively.

Ignore #line

It determines that the #line preprocessor directive be ignored.

Ignore skipped directives

It determines whether unknown directives should be reported as errors in skipped code during preprocessing. 

Example:
#if 0
/* Unknown directive, error not reported if this option is checked. */
#unknown
#endif

Lint Warnings

Static Code Analyzer Options - Lint Warnings tab

Report these warnings when enabled

If selected, warnings of a particular type generated during static code analysis will be reported in the Message Logs.

Toggle select all

With this button you can activate or deactivate all messages.

Reread from Project

With this button you can activate the messages configured in the project file.

MISRA C

Static Code Analyzer Options - MISRA C

MISRA C:1998 / MISRA C:2004 / MISRA C:2012

Select set of warnings from MISRA C guidelines.

Report separately

If this item is checked, selected warnings will be reported under separate MISRA C Compliance tab in the Message Logs. Otherwise, selected warnings will be reported under Static Code Analysis tab, along with other messages from the static code analysis.

Report these warnings when enabled-selected

Selected warnings will be reported during analysis.

The reporting or MISRA C Compliance warnings for header files is also affected by the selection in Warnings group, under the General tab of Options > Static Code Analyzer... dialog.

Report unsupported Rules

If checked, messages with lists of unsupported required and advisory rules will be reported during analysis..

Report disabled-unselected Rules

If checked, messages with lists of disabled required and advisory rules will be reported during analysis.

Report uses of MISRA C #pragma directive

If checked, messages for every usage of MISRA C #pragma directives will be reported during analysis. For more info about MISRA C #pragma directives, check "ANSI-C Static Source Code Analyzer" topic..

Unsupported Rules

List of rules that are not currently supported. Some of them could be supported in future releases while others are impossible to support in static code analysis.

Compliance Matrix - HTML Template file

Here you may choose or type Compliance Matrix Template file name. It works for MISRA C:2012 only.
Default Compliance Matrix Template file (folder: "MISRA C Template Files").

Show HTML Compliance Matrix

Generates and shows actual MISRA C Compliance Matrix. It works for MISRA C:2012 only.

MISRA C Warnings

This tab displays warnings for the standard selected in "MISRA C" tab.

Static Code Analyzer Options - MISRA C Warnings

Use

When this option is active, the template file, otherwise the project file is used.

MISRA C Template file

MISRA C warnings configuration can be saved in template file allowing you to switch between MISRA C configurations. If template file is not set, Project file is used to save MISRA C Warnings configuration.

Report these warnings when enabled

If selected, warnings of a particular type generated during static code analysis will be reported in the Message Logs.

Save as Template

Allows you to save the current configuration into a (new) template file.

Toggle select all

With this button you can activate or deactivate all messages.

Reload from Project / Reload from Template

Allows you to reset the current configuration to the state in the corresponding file.