aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2022-08-23 16:32:26 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2022-12-13 14:00:06 +0100
commitca246e573fb3f53fba5794f72b9245382eb46180 (patch)
tree106c5834069c035ac3799ea77014508a7b5dd475 /gcc/rust/backend
parent5215235f01665062fbe182bb0c3c49539d882ad7 (diff)
downloadgcc-ca246e573fb3f53fba5794f72b9245382eb46180.zip
gcc-ca246e573fb3f53fba5794f72b9245382eb46180.tar.gz
gcc-ca246e573fb3f53fba5794f72b9245382eb46180.tar.bz2
gccrs: Add privacy checks
This pass is responsible for resolving the privacy of items and verifying that access to these items is performed within the limits of that privacy. By default, items in Rust are private and only public to the current module and its submodules. However, the user can annotate an item with various qualifiers such as `pub` to publicly expose an item. Furthermore, a module path can be given to `pub` to restrict an item's privacy to a certain module: These paths need to be resolved and later on checked by the privacy error reporter. gcc/rust/ * checks/errors/privacy/rust-privacy-check.cc: New. * checks/errors/privacy/rust-privacy-check.h: New. * checks/errors/privacy/rust-privacy-common.h: New. * checks/errors/privacy/rust-privacy-ctx.cc: New. * checks/errors/privacy/rust-privacy-ctx.h: New. * checks/errors/privacy/rust-privacy-reporter.cc: New. * checks/errors/privacy/rust-privacy-reporter.h: New. * checks/errors/privacy/rust-pub-restricted-visitor.cc: New. * checks/errors/privacy/rust-pub-restricted-visitor.h: New. * checks/errors/privacy/rust-reachability.cc: New. * checks/errors/privacy/rust-reachability.h: New. * checks/errors/privacy/rust-visibility-resolver.cc: New. * checks/errors/privacy/rust-visibility-resolver.h: New.
Diffstat (limited to 'gcc/rust/backend')
0 files changed, 0 insertions, 0 deletions