aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-extern.h
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/rust-compile-extern.h
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/rust-compile-extern.h')
0 files changed, 0 insertions, 0 deletions