rust/compiler
bors a8f6e614f8 Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa
Add LLVM CFI support to the Rust compiler

This PR 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).

Thank you, `@eddyb` and `@pcc,` for all the help!
2021-10-27 09:19:42 +00:00
..
rustc
rustc_apfloat Revert "Auto merge of #89709 - clemenswasser:apply_clippy_suggestions_2, r=petrochenkov" 2021-10-15 11:28:23 +02:00
rustc_arena
rustc_ast Rollup merge of #89991 - petrochenkov:visitok2, r=jackh726 2021-10-22 19:42:48 +09:00
rustc_ast_lowering Remove unnecessary check for registers 2021-10-26 11:02:51 +09:00
rustc_ast_passes Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_ast_pretty Some "parenthesis" and "parentheses" fixes 2021-10-17 12:04:01 +02:00
rustc_attr Correct typo 2021-10-16 13:36:05 -07:00
rustc_borrowck Auto merge of #90042 - pietroalbini:1.56-master, r=Mark-Simulacrum 2021-10-25 11:31:47 +00:00
rustc_builtin_macros Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_codegen_cranelift Make hash_result an Option. 2021-10-20 18:29:18 +02:00
rustc_codegen_gcc Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_codegen_llvm Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_codegen_ssa Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_const_eval Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_data_structures Auto merge of #90042 - pietroalbini:1.56-master, r=Mark-Simulacrum 2021-10-25 11:31:47 +00:00
rustc_driver Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_error_codes Rollup merge of #89922 - JohnTitor:update-e0637, r=jackh726 2021-10-22 19:42:46 +09:00
rustc_errors Auto merge of #89427 - estebank:collect-overlapping-impls, r=jackh726 2021-10-24 22:26:41 +00:00
rustc_expand Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_feature Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_fs_util
rustc_graphviz Revert "Auto merge of #89709 - clemenswasser:apply_clippy_suggestions_2, r=petrochenkov" 2021-10-15 11:28:23 +02:00
rustc_hir Rollup merge of #90071 - cjgillot:no-blocks, r=oli-obk 2021-10-21 14:11:08 +09:00
rustc_hir_pretty Auto merge of #89124 - cjgillot:owner-info, r=michaelwoerister 2021-10-18 19:53:05 +00:00
rustc_incremental Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_index update cfg(bootstrap) 2021-10-23 21:55:57 -04:00
rustc_infer Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_interface Auto merge of #85830 - bjorn3:separate_provide_extern, r=cjgillot 2021-10-26 00:38:58 +00:00
rustc_lexer Revert "Auto merge of #89709 - clemenswasser:apply_clippy_suggestions_2, r=petrochenkov" 2021-10-15 11:28:23 +02:00
rustc_lint Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_lint_defs Make all proc-macro back-compat lints deny-by-default 2021-10-18 13:17:05 -05:00
rustc_llvm Rollup merge of #89581 - jblazquez:master, r=Mark-Simulacrum 2021-10-25 22:59:46 +02:00
rustc_macros Avoid a branch on key being local for queries that use the same local and extern providers 2021-10-25 13:36:23 +02:00
rustc_metadata Avoid a branch on key being local for queries that use the same local and extern providers 2021-10-25 13:36:23 +02:00
rustc_middle Avoid a branch on key being local for queries that use the same local and extern providers 2021-10-25 13:36:23 +02:00
rustc_mir_build Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_mir_dataflow Ignore errors re: unreachable blocks in dataflow cursor unit tests 2021-10-23 21:55:57 -04:00
rustc_mir_transform Auto merge of #90042 - pietroalbini:1.56-master, r=Mark-Simulacrum 2021-10-25 11:31:47 +00:00
rustc_monomorphize Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_parse Rollup merge of #89257 - aDotInTheVoid:macro-error-2, r=estebank 2021-10-22 19:42:43 +09:00
rustc_parse_format
rustc_passes allow potential_query_instability everywhere 2021-10-15 10:58:18 +02:00
rustc_plugin_impl Move rustc_middle::middle::cstore to rustc_session. 2021-10-03 16:08:51 +02:00
rustc_privacy Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank 2021-10-24 15:48:42 +02:00
rustc_query_impl Avoid a branch on key being local for queries that use the same local and extern providers 2021-10-25 13:36:23 +02:00
rustc_query_system Auto merge of #90210 - cjgillot:qarray2, r=Mark-Simulacrum 2021-10-25 01:10:50 +00:00
rustc_resolve Edit error messages for rustc_resolve::AmbiguityKind variants 2021-10-25 20:33:07 -05:00
rustc_save_analysis allow potential_query_instability everywhere 2021-10-15 10:58:18 +02:00
rustc_serialize Revert "Auto merge of #89709 - clemenswasser:apply_clippy_suggestions_2, r=petrochenkov" 2021-10-15 11:28:23 +02:00
rustc_session Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_span Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_symbol_mangling Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_target Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00
rustc_trait_selection fix(rustc_typeck): report function argument errors on matching type 2021-10-25 12:23:52 -07:00
rustc_traits Move some outlives bounds things from rustc_trait_selection to rustc_typeck 2021-10-15 12:14:19 -04:00
rustc_ty_utils expose default substs in param_env 2021-10-25 16:04:57 +02:00
rustc_type_ir Add two inline annotations for hot functions 2021-10-03 12:43:43 -04:00
rustc_typeck Auto merge of #89652 - rcvalle:rust-cfi, r=nagisa 2021-10-27 09:19:42 +00:00