The analyzer issues a warning when the destructor is invoked on the moved-from object explicitly. This is a false positive, as this invoking a destructor on a moved-from object is safe.
Example:
``
A* a = new A;
A b = std::move(*a);
a->~A();
``
The patch addresses this false warning.
Technically this code is still provably bad because it demonstrates double destructor invocation (one manual, one automatic) which screws with C++ "object lifecycle" rules. So we most likely want to emit a warning here ultimately, it's just not the responibility of this checker to warn. This might be worth pointing out in comments to the test, to let people know why exactly we don't expect the warning. So that when they see the test fail, they knew whether it's a good thing or a bad thing.
The other examples also have a memory leak (and if you simply add a delete operator, it'll again cause double destruction) which probably also deserves a warning but the corresponding checker is disabled in this test. Might also be worth pointing out.