FaultDetection-DeadBranches

There shall be no dead branches

Required inputs: IR, StaticSemanticAnalysis

This check detects conditions that always evaluate to true (or false), meaning that either the then-branch or else-branch is dead.

Possible Messages

Key

Text

Severity

Disabled

dead_call_false_branch

Function call condition is always true{dead_branch_type}

None

False

dead_call_false_branch_type_limits

Function call condition is always true due to limited range of data type{dead_branch_type}

None

False

dead_call_true_branch

Function call condition is always false

None

False

dead_call_true_branch_type_limits

Function call condition is always false due to limited range of data type{dead_branch_type}

None

False

dead_false_branch

Condition is always true{dead_branch_type}

None

False

dead_false_branch_type_limits

Condition is always true due to limited range of data type{dead_branch_type}

None

False

dead_false_branch_type_limits_in_context

Condition is true in context due to limited range of data type{dead_branch_type}

None

False

dead_global_var_false_branch

Global variable condition is always true{dead_branch_type}

None

False

dead_global_var_false_branch_type_limits

Global variable condition is always true due to limited range of data type{dead_branch_type}

None

False

dead_global_var_true_branch

Global variable condition is always false{dead_branch_type}

None

False

dead_global_var_true_branch_type_limits

Global variable condition is always false due to limited range of data type{dead_branch_type}

None

False

dead_param_dependent_var_false_branch

Parameter-dependent variable condition is always true{dead_branch_type}

None

False

dead_param_dependent_var_true_branch

Parameter-dependent variable condition is always false{dead_branch_type}

None

False

dead_param_false_branch

Parameter condition is always true{dead_branch_type}

None

False

dead_param_false_branch_type_limits

Parameter condition is always true due to limited range of data type{dead_branch_type}

None

False

dead_param_null_false_branch

Parameter is always equal to NULL{dead_branch_type}

None

False

dead_param_null_true_branch

Parameter is never equal to NULL{dead_branch_type}

None

False

dead_param_true_branch

Parameter condition is always false{dead_branch_type}

None

False

dead_param_true_branch_type_limits

Parameter condition is always false due to limited range of data type{dead_branch_type}

None

False

dead_true_branch

Condition is always false{dead_branch_type}

None

False

dead_true_branch_type_limits

Condition is always false due to limited range of data type{dead_branch_type}

None

False

dead_true_branch_type_limits_in_context

Condition is false in context due to limited range of data type{dead_branch_type}

None

False

dead_var_false_branch

Variable condition is always true{dead_branch_type}

None

False

dead_var_false_branch_type_limits

Variable condition is always true due to limited range of data type{dead_branch_type}

None

False

dead_var_true_branch

Variable condition is always false{dead_branch_type}

None

False

dead_var_true_branch_type_limits

Variable condition is always false due to limited range of data type{dead_branch_type}

None

False

do_while_only_once

Loop is only executed once, loop condition is always false

None

False

do_while_only_once_type_limits

Loop is only executed once, loop condition is always false due to limited range of data type

None

False

loop_cond_false

Loop body is dead, condition is always false

None

False

loop_cond_false_type_limits

Loop body is dead, condition is always false due to limited range of data type

None

False

loop_cond_true

Loop condition is always true

None

False

loop_cond_true_type_limits

Loop condition is always true due to limited range of data type

None

False

subexpression_false

Subexpression always evaluates to false

None

False

subexpression_false_type_limits

Subexpression always evaluates to false due to limited range of data type

None

False

subexpression_true

Subexpression always evaluates to true

None

False

subexpression_true_type_limits

Subexpression always evaluates to true due to limited range of data type

None

False

unreachable_short_circuit

Subexpression never evaluated due to short-circuiting operator

None

False

Options

report_do_while_false

report_do_while_false : bool = True

Whether do ... while(0) should be reported.
 

report_for_true

report_for_true : bool = True

Whether for(;;) ... should be reported.
 

report_while_true

report_while_true : bool = True

Whether while(1) ... should be reported.