analyze: misc fixes for lighttpd buffer (part 1/2) #1178
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Various small fixes for lighttpd's
buffer
module:rewrite::expr::mir_op
, skip generating casts forDeref
projections onFIXED
pointersStorageLive
/StorageDead
as uses (which would invalidate loans)rewrite::ty::HirTyVisitor
, add a missingwalk_stmt
call. This was causing type rewrites to be skipped in some places.rewrite::expr::mir_op
, add a conversion from&[T]
to&T
before dereferencing if needed. This can happen in cases likep.offset(...); x = *p;
because*p
usesp
directly, which has theOFFSET
permission due to the previousp.offset()
call, instead of copyingp
into a temporary, which would not need theOFFSET
permission.GlobalAnalysisCtxt::fn_analysis_invalid
, ignore the flagDontRewriteFnReason::REWRITE_INVALID
, since rewriting errors don't affect the validity of the analysis results.