Skip to content

Added support for retagging subfields of places. #20

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: bsan
Choose a base branch
from

Conversation

icmccorm
Copy link
Collaborator

This completes #17, which is v0 of our frontend instrumentation pass.

Retags are added as LLVM intrinsics, which take the following form:

@llvm.bsan.retag(ptr, isize, i8, i8)

The first parameter is the pointer being retagged. The second is the size of the range for the permission, starting from the base address of the pointer. The third parameter is a flag indicating the type of permission added to the tree (e.g. Frozen, Reserved), while the fourth is the type of protector applied.

Users can control how retags are emitted using -Zmir-retag-fields=all | none | scalar, which has the same semantics as Miri's -Zmiri-retag-fields option. By default, retagging recurses into fields.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant