[PATCH] D135136: [analyzer] Make directly bounded LazyCompoundVal as lazily copied

Gabor Marton via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 17 07:49:20 PDT 2022


martong added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Core/RegionStore.cpp:2290
       List.insert(List.end(), InnerList.begin(), InnerList.end());
-      continue;
     }
----------------
steakhal wrote:
> Here is the `continue` which previously prevented `getInterestingValues()` returning a list containing `LazyCompoundVals`. Now, we actually want them to be able to mark them as //lazily copied// as described in the summary.
> I'm just highlighting this, as when I reviewed this change it did not immediately stand out.
Yes, I was looking for the change too :D


================
Comment at: clang/lib/StaticAnalyzer/Core/RegionStore.cpp:2843
-    // subregions of the `LCS.getRegion()` also lazily copied.
-    if (const MemRegion *R = LCS->getRegion())
-      SymReaper.markLazilyCopied(R);
----------------
Why can we remove this line?
If `LCS->getRegion()` returns a non-null unconditionally then please add an `assert`.


================
Comment at: clang/test/Analysis/trivial-copy-struct.cpp:95-97
+      // Unreachable, w->head is a copy of *n, therefore
       // w->head.next and n->next are equal
+      clang_analyzer_warnIfReached(); // no-warning: unreachable
----------------
Good!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D135136



More information about the cfe-commits mailing list