Details
- Reviewers
jordan_rose
Diff Detail
Event Timeline
Added more tests, and a FIXME for the parameter passing test.
Addressed review comments.
Do we really need to put the "binds parameter" information in the CFG? I was hoping we could look in the parent map to see how the temporary is used (like for 'new' right now).
include/clang/Analysis/CFG.h | ||
---|---|---|
285 ↗ | (On Diff #12305) | Why not just use "self"? Or &T? Why "T"? Why does T require a dynamic allocation? |
lib/StaticAnalyzer/Core/ExprEngine.cpp | ||
688–693 | This is not how LCVs work. An LCV is a snapshot of a region at a particular "time" (state of the Store); the region may not exist in the current store. The "best" answer in the current scheme is to use createTemporaryRegionIfNeeded, but the right answer may end up being to disregard the rvalue-ness of temporaries (as we talked about some on cfe-dev). | |
lib/StaticAnalyzer/Core/ProgramState.cpp | ||
508–509 | This is not correct; see above. |
This is not how LCVs work. An LCV is a snapshot of a region at a particular "time" (state of the Store); the region may not exist in the current store. The "best" answer in the current scheme is to use createTemporaryRegionIfNeeded, but the right answer may end up being to disregard the rvalue-ness of temporaries (as we talked about some on cfe-dev).