A dead store happens when a local variable is assigned a value that is not read by any subsequent instruction. Calculating or retrieving a value only to then overwrite it or throw it away, could indicate a serious error in the code. Even if it's not an error, it is at best a waste of resources. Therefore all calculated values should be used.
def func(a, b, compute):
i = a + b # Noncompliant; calculation result not used before value is overwritten
i = compute() # Noncompliant; the value is not used before leaving the function
def func(a, b, compute):
i = a + b
i += compute()
return i
This rule ignores initializations to -1, 0, 1, None, True, False and "".
No issue will be raised on unpacked variables.
* MITRE, CWE-563 - Assignment to Variable without Use ('Unused Variable')
* CERT, MSC13-C. - Detect and remove unused values
* CERT, MSC56-J. - Detect and remove superfluous code and values