rust/compiler
Ramon de C Valle 5ad7a646a5 Add fine-grained LLVM CFI support to the Rust compiler
This commit improves the LLVM Control Flow Integrity (CFI) support in
the Rust compiler by providing forward-edge control flow protection for
Rust-compiled code only by aggregating function pointers in groups
identified by their return and parameter types.

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 identifying C char and integer type uses at the
time types are encoded (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).
2022-07-23 10:51:34 -07:00
..
rustc
rustc_apfloat
rustc_arena
rustc_ast
rustc_ast_lowering Factor out hir::Node::Binding 2022-07-01 10:04:19 -05:00
rustc_ast_passes
rustc_ast_pretty
rustc_attr
rustc_borrowck Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_builtin_macros Don't use match-destructuring for derived ops on structs. 2022-07-04 10:48:15 +10:00
rustc_codegen_cranelift Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_codegen_gcc Add fine-grained LLVM CFI support to the Rust compiler 2022-07-23 10:51:34 -07:00
rustc_codegen_llvm Add fine-grained LLVM CFI support to the Rust compiler 2022-07-23 10:51:34 -07:00
rustc_codegen_ssa Add fine-grained LLVM CFI support to the Rust compiler 2022-07-23 10:51:34 -07:00
rustc_const_eval Auto merge of #98206 - eggyal:align-to-chalk-folding-api, r=jackh726 2022-07-06 05:48:11 +00:00
rustc_data_structures Auto merge of #98558 - nnethercote:smallvec-1.8.1, r=lqd 2022-06-29 09:11:29 +00:00
rustc_driver Fix bug in rustdoc -Whelp 2022-07-02 02:11:49 -05:00
rustc_error_codes Rollup merge of #97423 - m-ou-se:memory-ordering-intrinsics, r=tmiasko 2022-06-29 10:28:18 +05:30
rustc_error_messages lint: port asm labels diagnostics 2022-06-30 08:59:22 +01:00
rustc_errors Rollup merge of #98624 - davidtwco:translation-on-lints, r=compiler-errors 2022-07-05 16:04:32 +05:30
rustc_expand Auto merge of #98446 - nnethercote:derive-no-match-destructuring, r=scottmcm 2022-07-04 01:06:54 +00:00
rustc_feature
rustc_fs_util
rustc_graphviz
rustc_hir Factor out hir::Node::Binding 2022-07-01 10:04:19 -05:00
rustc_hir_pretty clean up the borrowing in rustc_hir_pretty 2022-07-03 18:51:14 +02:00
rustc_incremental
rustc_index
rustc_infer Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_interface Auto merge of #98570 - SparrowLii:deadlock, r=cjgillot 2022-07-03 02:05:14 +00:00
rustc_lexer fix typo in comment 2022-06-28 19:59:09 +05:30
rustc_lint Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_lint_defs Auto merge of #97235 - nbdd0121:unwind, r=Amanieu 2022-07-02 14:06:27 +00:00
rustc_llvm llvm-wrapper: adapt for LLVMConstExtractValue removal 2022-06-30 12:47:34 +00:00
rustc_log
rustc_macros Add #[derive(TypeVisitable)] 2022-07-05 22:25:15 +01:00
rustc_metadata Auto merge of #97235 - nbdd0121:unwind, r=Amanieu 2022-07-02 14:06:27 +00:00
rustc_middle Auto merge of #98206 - eggyal:align-to-chalk-folding-api, r=jackh726 2022-07-06 05:48:11 +00:00
rustc_mir_build Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_mir_dataflow Rollup merge of #98944 - pierwill:flatset-docs, r=Dylan-DPC 2022-07-05 23:43:33 +02:00
rustc_mir_transform Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_monomorphize Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_parse Auto merge of #98673 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum 2022-07-03 06:55:50 +00:00
rustc_parse_format
rustc_passes Rollup merge of #98624 - davidtwco:translation-on-lints, r=compiler-errors 2022-07-05 16:04:32 +05:30
rustc_plugin_impl
rustc_privacy Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_query_impl get rid of tcx in deadlock handler when parallel compilation 2022-06-29 10:02:30 +08:00
rustc_query_system Auto merge of #98570 - SparrowLii:deadlock, r=cjgillot 2022-07-03 02:05:14 +00:00
rustc_resolve suggest #[derive(Default)] to enums with #[default] 2022-07-04 20:46:59 +09:00
rustc_save_analysis Factor out hir::Node::Binding 2022-07-01 10:04:19 -05:00
rustc_serialize
rustc_session incr.comp.: Make split-dwarf commandline options [TRACKED]. 2022-07-04 14:11:28 +02:00
rustc_smir
rustc_span Auto merge of #98376 - nnethercote:improve-derive-PartialEq, r=petrochenkov 2022-06-29 00:20:57 +00:00
rustc_symbol_mangling Add fine-grained LLVM CFI support to the Rust compiler 2022-07-23 10:51:34 -07:00
rustc_target
rustc_trait_selection Auto merge of #98206 - eggyal:align-to-chalk-folding-api, r=jackh726 2022-07-06 05:48:11 +00:00
rustc_traits Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_ty_utils Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_type_ir more rustc_pass_by_value 2022-07-04 09:40:58 +02:00
rustc_typeck Update TypeVisitor paths 2022-07-06 06:41:53 +01:00