os-rust/compiler
Ramon de C Valle 5d30e93189 Add LLVM CFI support to the Rust compiler
This commit adds LLVM Control Flow Integrity (CFI) support to the Rust
compiler. It initially provides forward-edge control flow protection for
Rust-compiled code only by aggregating function pointers in groups
identified by their number of arguments.

Forward-edge control flow protection for C or C++ and Rust -compiled
code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code
share the same virtual address space) will be provided in later work as
part of this project by defining and using compatible type identifiers
(see Type metadata in the design document in the tracking issue #89653).

LLVM CFI can be enabled with -Zsanitizer=cfi and requires LTO (i.e.,
-Clto).
2021-10-25 16:23:01 -07:00
..
rustc Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_apfloat Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_arena Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_ast remove unwrap_or! macro 2021-10-08 19:32:16 +03:00
rustc_ast_lowering Rollup merge of #89641 - asquared31415:asm-feature-attr-regs, r=oli-obk 2021-10-09 11:56:00 +02:00
rustc_ast_passes Allow adding a set of cfg's to hide from being implicitly doc(cfg)'d 2021-10-05 18:04:15 +02:00
rustc_ast_pretty Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_attr Move some HashStable impls. 2021-10-03 16:08:50 +02:00
rustc_borrowck Rollup merge of #89649 - matthiaskrgr:clippycompl, r=jyn514 2021-10-08 22:30:40 +02:00
rustc_builtin_macros Rollup merge of #89649 - matthiaskrgr:clippycompl, r=jyn514 2021-10-08 22:30:40 +02:00
rustc_codegen_cranelift Auto merge of #89619 - michaelwoerister:incr-vtables, r=nagisa 2021-10-08 09:04:06 +00:00
rustc_codegen_gcc Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_codegen_llvm Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_codegen_ssa Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_const_eval Auto merge of #89619 - michaelwoerister:incr-vtables, r=nagisa 2021-10-08 09:04:06 +00:00
rustc_data_structures Remove for loop range 2021-10-10 16:32:16 +02:00
rustc_driver Fix RUSTC_LOG handling 2021-10-10 19:59:36 +01:00
rustc_error_codes Consistently use 'supertrait'. 2021-10-02 08:05:44 +07:00
rustc_errors use structured fields in some existing warnings 2021-10-07 10:48:48 -07:00
rustc_expand Improve help for recursion limit errors 2021-09-28 22:17:13 +02:00
rustc_feature Rollup merge of #89428 - DevinR528:reachable-featuregate, r=Nadrieril,camelid 2021-10-10 18:22:19 +02:00
rustc_fs_util Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_graphviz Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_hir Rollup merge of #89641 - asquared31415:asm-feature-attr-regs, r=oli-obk 2021-10-09 11:56:00 +02:00
rustc_hir_pretty Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
rustc_incremental Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
rustc_index Remove unnecessary variable 2021-10-11 08:11:30 +02:00
rustc_infer Auto merge of #89633 - rhysd:issue-65230, r=petrochenkov 2021-10-10 15:59:28 +00:00
rustc_interface Enable AutoFDO. 2021-10-06 19:36:52 +00:00
rustc_lexer Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_lint Rollup merge of #89672 - klensy:unwrap-or-macro, r=jackh726 2021-10-08 22:30:43 +02:00
rustc_lint_defs Add feature gate to non_exhaustive_omitted_patterns lint 2021-10-08 17:40:39 -04:00
rustc_llvm Rollup merge of #89025 - ricobbe:raw-dylib-link-ordinal, r=michaelwoerister 2021-10-07 20:26:11 -07:00
rustc_macros Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_metadata Rollup merge of #89649 - matthiaskrgr:clippycompl, r=jyn514 2021-10-08 22:30:40 +02:00
rustc_middle Rollup merge of #89722 - jkugelman:cannonical-typo, r=joshtriplett 2021-10-11 00:34:40 +02:00
rustc_mir_build clippy::complexity fixes 2021-10-08 20:07:44 +02:00
rustc_mir_dataflow comma-related changes 2021-10-07 11:29:47 -07:00
rustc_mir_transform clippy::complexity fixes 2021-10-08 20:07:44 +02:00
rustc_monomorphize Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
rustc_parse some clippy::perf fixes 2021-10-07 22:31:33 +02:00
rustc_parse_format Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_passes Rollup merge of #89641 - asquared31415:asm-feature-attr-regs, r=oli-obk 2021-10-09 11:56:00 +02:00
rustc_plugin_impl Move rustc_middle::middle::cstore to rustc_session. 2021-10-03 16:08:51 +02:00
rustc_privacy Auto merge of #89405 - GuillaumeGomez:fix-clippy-lints, r=cjgillot 2021-10-02 10:52:09 +00:00
rustc_query_impl Auto merge of #89343 - Mark-Simulacrum:no-args-queries, r=cjgillot 2021-10-09 13:13:07 +00:00
rustc_query_system Query the fingerprint style during key reconstruction 2021-10-06 22:19:48 -04:00
rustc_resolve remove unwrap_or! macro 2021-10-08 19:32:16 +03:00
rustc_save_analysis Auto merge of #89266 - cjgillot:session-ich, r=michaelwoerister 2021-10-05 09:45:11 +00:00
rustc_serialize Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_session Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_span Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_symbol_mangling Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_target Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00
rustc_trait_selection Fix spelling: Cannonical -> Canonical 2021-10-10 00:44:34 -04:00
rustc_traits clippy::complexity fixes 2021-10-08 20:07:44 +02:00
rustc_ty_utils Remove various unused feature gates 2021-10-02 19:09:18 +02:00
rustc_type_ir Add two inline annotations for hot functions 2021-10-03 12:43:43 -04:00
rustc_typeck Add LLVM CFI support to the Rust compiler 2021-10-25 16:23:01 -07:00