github-vet / github-vet/bots

Update the induction in pointerescapes to work over an extensible product domain

Open
#131 0 comments 0 reactions 0 assignees View on GitHub
enhancement vet-bot
Dominant language
Go
Stars
1
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Currently `pointerescapes` tracks a single boolean value across the callgraph. It marks each pointer argument it finds as 'escapes' or not.

There are several other properties of these pointers we want to track to handle other bad pointer usage like pointer comparisons. To be able to do so without a lot of duplication, we need to extend the boolean value being tracked to an n-tuple of boolean values. The API design should be extensible enough to allow us to add extra flags to track as needed.

Once this is in place, we can tie that n-tuple into analyzers that are focused on the function declarations only, and trust the callgraph analyzer to perform whatever induction is needed for us.

Once this is done, `pointerescapes` will be a misnomer, so maybe it should be refactored into an `induction` analyzer under the `callgraph` package.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.