7.2.5.2. Messages reported by Flow AnalysisΒΆ
The following table shows all flow analysis messages, (E)rrors, (W)arnings and (C)hecks.
Message Kind | Class | CWE | Explanation |
---|---|---|---|
aliasing between subprogram parameters | C | Aliasing between formal parameters or global objects. | |
dead code | W | CWE 561 | A statement is never executed. |
wrong Default_Initial_Condition aspect | C | CWE 457 | A type is wrongly declared as initialized by default. |
input item missing from the null dependency clause | C | An input item is missing from the null dependency clause. | |
input item missing from the dependency clause | C | An input is missing from the dependency clause. | |
output item missing from the dependency clause | C | An output item is missing from the dependency clause. | |
extra input item in the dependency clause | C | Extra input item in the dependency clause. | |
incomplete Global or Initializes contract | E | A Global or Initializes contract fails to mention some objects. | |
an extra item in the Global or Initializes contract | C | A Global or Initializes contract wrongly mentions some objects. | |
subprogram output depends on a Proof_In global | C | Subprogram output depends on a Proof_In global. | |
constants with variable inputs that is not a state constituent | C | Constants with variable inputs that are not state constituents. | |
illegal write of a global input | C | Illegal write of a global input. | |
a state abstraction that is impossible to initialize | C | A state abstraction that is impossible to initialize. | |
a statement with no effect on subprogram’s outputs | W | CWE 1164 | A statement with no effect on subprogram’s outputs. |
an extra item in the Initializes contract | C | An object that shall not appear in the Initializes contract | |
an IN OUT parameter or an In_Out global that is not written | C | An IN OUT parameter or an In_Out global that is not written. | |
all execution paths raise exceptions or do not return | C | All execution paths raise exceptions or do not return. | |
illegal write of an object declared as constant after elaboration | C | Illegal write of an object declared as constant after elaboration. | |
use of an abstract state of a package that was not yet elaborated | C | Use of an abstract state of a package that was not yet elaborated. | |
a missing pragma Elaborate_Body | C | A missing pragma Elaborate_Body. | |
constant with no variable inputs as an abstract state’s constituent | C | Constant with no variable inputs as an abstract state’s constituent. | |
function with side effects | E | A function with side effects. | |
loop with stable statement | W | A loop with stable statement. | |
use of an uninitialized variable | C | CWE 457 | Flow analysis has detected the use of an uninitialized variable. |
object is not used | W | CWE 563 | A global or locally declared object is never used. |
initial value of an object is not used | W | CWE 563 | The initial value of an object is not used. |
volatile function wrongly declared as non-volatile | C | A volatile function wrongly declared as non-volatile. | |
non-volatile function wrongly declared as volatile | C | A non-volatile function wrongly declared as volatile. | |
illegal reference to a global object in precondition of a protected operation | C | An illegal reference to global in precondition of a protected operation |
Note
Certain messages emitted by flow analysis are classified as errors and consequently cannot be suppressed or justified.