FaultDetection-DeadBranches¶
There shall be no dead branches
Required inputs: IR, StaticSemanticAnalysis
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¶
This rule shares the following common options: exclude_in_macros, exclude_messages_in_system_headers, excludes, extend_exclude_to_macro_invocations, includes, justification_checker, languages, post_processing, provider, report_at, severity
The following places define options that affect this rule: Stylechecks, Analysis-GlobalOptions
report_do_while_false¶
report_do_while_false : bool = True
do ... while(0) should be reported.
report_for_true¶
report_for_true : bool = True
for(;;) ... should be reported.
report_while_true¶
report_while_true : bool = True
while(1) ... should be reported.