szepet added a comment.

Thank you for working on that, Artem!
The changes look good, just one comment about that suspicious remove.



================
Comment at: lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp:426
+
+    State = State->remove<TrackedRegionMap>(WholeObjectRegion);
     C.addTransition(State);
----------------
I am wondering if I made a mistake but I think this should be removeFromState() 
function call. (We should remove every marked subregions of the object too.)
So I suspect a code like this would result a false positive:
```
struct A{
B b;
void clear();
};

void test(){
A a;
B b = std::move(a.b);
a.clear();
b = std::move(a); //report a bug
}
```

I mean it is probably a report we do not want to have.


https://reviews.llvm.org/D31538



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to