- Important information
- New features
- Known problems
- Program corrections
- User guide corrections
- Miscellaneous
- Release history
Important information
- None.
New features
- None.
Known Problems
- None.
Program Corrections
Assignment operations in a separate function on a variable which is passed by reference can lead to false positives produced by MISRAC++2008-0-1-6 and similar C-STAT checks.
[EW26117]It's possible to try to generate a C-STAT report on a project that has not yet been analyzed.
[EW26173]ATH-overflow is unable to detect overflows for shorthand assignment operators.
[EW26194]Projects where the combined absolute paths of all source files exceeds 32,768 characters cause the link analysis to crash.
[EW26217]MISRAC++2008-7-1-1 does not consider 1) calling a non-const member function and 2) taking the address of a struct variable and writing to one of its fields as modifications.
[EW26219]The type of a ternary expression is falsely decided by the type of its first operand.
[EW26243]C-STAT might report that the left-hand side argument of a right-shift operation has a negative interval even though the expression is unsigned.
[EW26258]A non-const pointer using a parameter for an impure function is considered a violation to MISRAC2012-Rule-8.13.
[EW26260]Non-system external functions with return type
void
are not considered as having side effects.
[EW26262]C-STAT erroneously considers accessing a struct field inside a subscript operation on the left hand side of an assignment as writing to that struct field.
[EW26264]C-STAT might report that the right-hand side argument of a left-shift operation has a negative interval even though the expression is unsigned.
[EW26271]Boolean pointers are not considered to have
boolean
type.
[EW26273]Use of global objects are not registered if the use involves implicit casts. This could lead to triggering of false positives for MISRAC2012-Rule-8.9_b.
[EW26275]Literal
0
is interpreted asNULL
by SEC-NULL-literal-pos and PTR-null-literal-pos.
[EW26283]EXP-main-ret-int signals a false positive when the return type of
main()
is atypedef
of typeint
.
[EW26285]Taking the address of a volatile object is not considered as a non-volatile operation.
[EW26302]Using a static global on the right-hand side of a global assignment is not considered a use and can thus trigger false positives for MISRAC2012-Rule-8.9_a.
[EW26304]Comparing values accessed through the
subscript
operator on different arrays is considered as comparisons between different pointers, thus falsely trigger MISRAC2012-Rule-18.3.
[EW26307]A struct field which is a
typedef
with the character sequencebool
,Bool
orBOOL
in its name is not considered to be of boolean type.
[EW26316]Using a struct field which is a typedef consisting of the character sequence
bool
,Bool
orBOOL
as a conditional causes MISRAC2012-Rule-14.4 to generate false positives.
[EW26318]Implicit casts could in some cases cause C-STAT to believe an unsigned variable could have a negative value interval.
[EW26365]C-STAT fails with an Internal error when analyzing code which contains a
char
with a value larger than 31 bits.
[EW26392]When using multiple
--exclude
options, only the last option has any effect.
[EW26438]
User guide corrections
- None.
Miscellaneous
- None.
Release history
V7.80 2016-10-17
Program correctionsMISRA-C:2004 rule 11.4 does not give a message for casting an array into a pointer.
[EW26207]
V7.70 2016-06-17
Program correctionsC-STAT: MISRAC2004-17.4_b now handles multi-dimensional arrays.
[EW26056]In EWARM 7.70.2:
C-STAT produces false positives for MISRAC2012-Rule-10.1_R2 when a boolean expression contains a nested ternary operator which is essentially boolean.
[EW26082]In EWARM 7.70.2:
The rule MISRAC2012-Rule-12.1 / MISRAC++2008-5-0-2 / MISRAC2004-12.1 generates false positives regarding suggestions to enclosesizeof()
expressions with parentheses for increased clarity.
[EW26083]In EWARM 7.70.2:
Suppressing C-STAT checks over an interval with the use of wildcards does not work as intended.
[EW26092]In EWARM 7.70.2:
The 'underlying type' is sometimes incorrectly determined for the check MISRAC++2008-5-0-6.
[EW26118]In EWARM 7.70.2:
MISRAC2012-Rule-11.9 does not generate messages for implicit(void *)0
casts, e.g.,void *p = 0
[EW26120]In EWARM 7.70.2:
MISRAC2012-Rule-8.13: Pointers that are copied by assignment are no longer required to be const-qualified.
[EW26196]In EWARM 7.70.2:
CERT-EXP19-C generates too many false positives for missing braces for else-if statements.
[EW26198]
- None.
V7.60 2015-03-31
Program corrections- None.
- None.
V7.60 2016-03-31
Program corrections-
C-STAT: Code accessing fields of an anonymous union triggers an Internal error.
[EW25776] -
C-STAT: LIB-memcpy-overrun and MISRAC2012-Rule-1.3t may incorrectly calculate the size of the destination memory.
[EW25908]
Extended functionality in C-STAT
The static analysis tool C-STAT has been extended with approximately 150 new checks including 90 new MISRA C:2012 checks and two new packages of checks. There are also new options to enable or disable the false-positives elimination phase of the analysis and to exclude files from the analysis. C-STAT message suppression can now be controlled by directives placed in comments in the source files. For more information see the release notes for the compiler.
V7.50 2015-11-10
Program corrections-
C-STAT might encounter a fatal error if the path to the object file, in the compiler command line, contains certain multibyte characters.
[EW25766]
-
Analysis report generation in C-STAT
It is now possible to generate analysis reports from C-STAT in html format. See C-STAT Static Analysis Guide for more information.
V7.40 2015-02-19
Program corrections-
In EWARM 7.40.2:
C-STAT: Whenicstat
has timed out it does not mention this in any way or form.
[EW25262] -
In EWARM 7.40.2:
C-STAT: The checkATH-div-0-cmp-aft
now uses the analyzed interval ranges, if applicable.
[EW25300] -
In EWARM 7.40.2:
C-STAT: MISRAC2012-Rule-15.6_c does not accept that anelse
immediatley followed byif
should not get a message
[EW25330] -
In EWARM 7.40.3:
C-STAT: The ananlysis does not considerva_start
as an initialization of a variable.
[EW25319] -
In EWARM 7.40.3:
C-STAT: When checking MISRAC2012-Dir-4.10 (include guards), any system header included using"..."
instead of<...>
is considered in violation of the rule.
[EW25321] -
In EWARM 7.40.3:
C-STAT: MISRAC2012-Dir-4.6_a can erroneously be diagnosed as violated in some cases. In particular, using avolatile
orconst
modifier in an array type declaration can cause this behavior.
[EW25323] -
In EWARM 7.40.3:
C-STAT: The interval solver in C-STAT erroneously uses the initialized value of a global or staticvolatile
variable.
[EW25332, EW25389] -
In EWARM 7.40.3:
C-STAT:signed integer
constant expression zero gives an erroneous message for MISRAC2012-Rule-10.1_R7 (the right operand of a shift should be essentially unsigned).
[EW25343] -
In EWARM 7.40.3:
C-STAT: MISRAC2012-Rule-10.3/4 sometimes gives a message erroneously (return of a bool and a compare of abool
withinteger
constants 0 and 1).
[EW25355] -
In EWARM 7.40.3:
C-STAT: Volatile accesses insidesizeof()
expressions are considered as a side effect.
[EW25381] -
In EWARM 7.40.3:
C-STAT: MISRAC++2008-2-13-3 incorrectly flags enumeration constants.
[EW25412] -
In EWARM 7.40.3:
C-STAT: MISRAC++2008-8-5-2 fails for arrays with more than 100 elements even though it uses an initializer with the correct amount of elements.
[EW25422] -
In EWARM 7.40.5:
C-STAT: MISRAC2012-Rule-10.3/4 does not treat theenum
constants 0 and 1 asboolean
.
[EW25370] -
In EWARM 7.40.5:
C-STAT: The checks CONST-param, MISRA-C:2004-16.7, and MISRA C++:2008-7-1-2 do not detect array assignments for parameters.
[EW25547] -
In EWARM 7.40.5:
C-STAT: The check MISRA-C:2004 19.15 can, spuriously, generate messages for source files in directories that are not subdirectories of the project directory ($PROJ_DIR$
).
[EW25549] -
In EWARM 7.40.5:
C-STAT: The detection of whether a macro is coming from a system header or not is faulty. In this case it incorrectly generates a message for the use ofoffsetof
.
[EW25603] -
In EWARM 7.40.5:
C-STAT now reports fewer false positives for the check SPC-volatile-reads.
[EW25607] -
In EWARM 7.40.5:
C-STAT, MEM-stack-global-alias: Assigning a value from an array to a global variable is no longer interpreted as assigning a stack address to it.
[EW25609]
C-STAT
The add-on product C-STAT for static analysis is now supported. C-STAT features innovative static analysis that can detect defects, bugs, and security vulnerabilities as defined by CERT and the Common Weakness Enumeration, as well as help keeping code compliant to coding standards like MISRA C:2012/2004 or MISRA C++:2008. For more information, see C-STAT Static Analysis Guide.