The analyzer currently reports dead store false positives when a local variable is captured by reference in a C++ lambda.
For example:
int local = 0;
auto lambda = [&local]() {
local++;
};
local = 7; // False Positive: Value stored to 'local' is never read
lambda();In this case, the assignment setting local to 7 is not a dead store because the called lambda will later read that assigned value.
This patch silences this source of false positives by treating locals captured by reference in C++ lambdas as escaped, similarly to how the DeadStoresChecker deals with locals whose address is taken.
As far as I can see ThisCaptureField is not used. Does this solution work, when there is a dead store to a class member (through captured this)?