NoQ added inline comments.
================ Comment at: test/Analysis/use-after-move.cpp:331 for (int i = 0; i < bignum(); i++) { // expected-note {{Loop condition is true. Entering loop body}} expected-note {{Loop condition is true. Entering loop body}} constCopyOrMoveCall(std::move(a)); // expected-warning {{Moved-from object is moved 'a'}} expected-note {{Moved-from object is moved 'a'}} // expected-note@-1 {{'a' is moved}} ---------------- Szelethus wrote: > >Because `list2` is passed by non-const reference (eg., rvalue reference) > >into an unknown function, it will be invalidated when the call is modeled > >conservatively, and therefore we will stop tracking it in the > >`checkRegionChanges` callback. > > Hmmm. Doesn't this check something similar, but still cause an warning? In this case `a` is passed by value. Therefore a move-constructor is called, and then the function does not have access to `a`. ================ Comment at: test/Analysis/use-after-move.cpp:260-262 for (int i = 0; i < bignum(); i++) { // expected-note {{Loop condition is false. Execution jumps to the end of the function}} rightRefCall(std::move(a)); // no-warning } ---------------- This would have been the test for our case, but in this test the function has a body and will not be evaluated conservatively. ================ Comment at: test/Analysis/use-after-move.cpp:597-615 void not_known(A &a); void not_known(A *a); void regionAndPointerEscapeTest() { { A a; A b; ---------------- This would have been the test for our case, but the `&&` case isn't tested. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D54563/new/ https://reviews.llvm.org/D54563 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits