[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