Custom Query (74 matches)
Results (19 - 21 of 74)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#64 | fixed | Distinguish between in and out parameters when checking whether parameters passed to a function are initialised | phdmakk | phdmakk |
Description |
There are calls to external functions, functions and altsteps where many parameters are defined as "out" parameters and also many functions using decvalue(A,B) Refine "Uninitialised variables that are passed as parameters to called functions are not considered initialised" to distinguish between in and out parameters. In parameters shall be checked for initialisation, out parameters shall be updated as initialised. |
|||
#63 | fixed | Unify naming for checkNoUnitialisedVariables | phdmakk | |
Description |
The rule is printed on the output of the tool as "checkNoUninitialisedLocalDefinitions" but the Release Notes and other mentions to the rule are as "checkNoUninitialisedVariables". |
|||
#62 | fixed | Add support for the identification of uninitialised variables | phdmakk | phdmakk |
Description |
T3Q shall raise an error message whenever there is an operation involving an uninitialised variable, i.e. regardless of the type of the variable or the operation done over it. The feature shall be enabled/disabled using the xml configuration file. For example, given: function f_ConditionalSpec() { var integer v_s0; var integer v_s1; var integer v_s2 := 1; var integer v_s3; var integer v_s4; var integer v_s5; //v_s2 is initialised upon declaration -> no warning if (v_s2 == 1) { //v_s3 is not initialised -> warning //v_s0 initialised within the conditional after this statement v_s0 := v_s3 + 1; //v_s1 is not initialised -> warning //v_s2 is initialised -> no warning //v_s3 initialised within the conditional after this statement v_s3 := v_s2 + 1 + v_s1; //v_s3 is initialised above -> no warning //v_s4 initialised within the conditional after this statement v_s4 := v_s3 + 1; } else { //v_s2 is initialised -> no warning //v_s4 initialised within the else branch after this statement v_s4 := v_s2 + 1; } //v_s3 is only initialised within one of the possible paths -> warning //v_s4 is initialised within both possible paths (within all branches of the conditional above) -> no warning v_s5 := v_s3 + v_s4; } This feature requires data flow analysis. |