[PATCH] D55289: [analyzer] MoveChecker Pt.5: Improve invalidation policies.

Kristóf Umann via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 5 09:54:51 PST 2018


Szelethus added a comment.

Cool!



================
Comment at: lib/StaticAnalyzer/Checkers/MoveChecker.cpp:528
     ArrayRef<const MemRegion *> ExplicitRegions,
     ArrayRef<const MemRegion *> Regions, const LocationContext *LCtx,
     const CallEvent *Call) const {
----------------
This isn't specific to this revision, but I find the parameter name `Regions` way too vague. Maybe `ImplicitRegions`?


================
Comment at: lib/StaticAnalyzer/Checkers/MoveChecker.cpp:540-542
+    // Explicit regions are the regions passed into the call directly, but
+    // not all of them end up being invalidated. The ones that do appear in
+    // the Regions array as well.
----------------
Really? Then I guess this needs to be updated in `CheckerDocumentation.cpp`:

```
  /// \param ExplicitRegions The regions explicitly requested for invalidation.
  ///        For a function call, this would be the arguments. For a bind, this
  ///        would be the region being bound to.
```

To me, this clearly indicates that the elements of `ExplicitRegions` will be invalidated. Does "requested for" really just mean "requested for potential"? Since this happens //before// any invalidation, it could easily be interpreted as "invalidated after the end of the callback".


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55289/new/

https://reviews.llvm.org/D55289





More information about the cfe-commits mailing list