rust/compiler
Matthias Krüger 0bb72a2c66
Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa
Add MemTagSanitizer Support

Add support for the LLVM [MemTagSanitizer](https://llvm.org/docs/MemTagSanitizer.html).

On hardware which supports it (see caveats below), the MemTagSanitizer can catch bugs similar to AddressSanitizer and HardwareAddressSanitizer, but with lower overhead.

On a tag mismatch, a SIGSEGV is signaled with code SEGV_MTESERR / SEGV_MTEAERR.

# Usage

`-Zsanitizer=memtag -C target-feature="+mte"`

# Comments/Caveats

* MemTagSanitizer is only supported on AArch64 targets with hardware support
* Requires `-C target-feature="+mte"`
* LLVM MemTagSanitizer currently only performs stack tagging.

# TODO

* Tests
* Example
2022-02-18 23:23:03 +01:00
..
rustc remove unused jemallocator crate 2022-01-28 16:56:05 +01:00
rustc_apfloat
rustc_arena Remove unused dep from rustc_arena 2022-02-02 17:37:14 +01:00
rustc_ast Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_ast_lowering Revert "Auto merge of #91403 - cjgillot:inherit-async, r=oli-obk" 2022-02-17 16:00:04 +00:00
rustc_ast_passes Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_ast_pretty Pretty print ItemKind::Use in rustfmt style 2022-02-07 21:51:05 -08:00
rustc_attr Ensure that queries only return Copy types. 2022-02-09 20:07:38 +01:00
rustc_borrowck Auto merge of #94088 - oli-obk:revert, r=jackh726 2022-02-18 07:35:37 +00:00
rustc_builtin_macros Rollup merge of #92959 - asquared31415:test-non-fn-help, r=estebank 2022-02-18 16:23:29 +01:00
rustc_codegen_cranelift Overhaul Const. 2022-02-15 16:19:59 +11:00
rustc_codegen_gcc Unconditionally update symbols 2022-02-10 18:27:18 +01:00
rustc_codegen_llvm Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa 2022-02-18 23:23:03 +01:00
rustc_codegen_ssa Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_const_eval Support pretty printing of invalid constants 2022-02-16 00:38:59 +01:00
rustc_data_structures Address review comments. 2022-02-15 16:20:01 +11:00
rustc_driver Remove Config::stderr 2022-02-13 11:49:52 +01:00
rustc_error_codes Revert "Auto merge of #91403 - cjgillot:inherit-async, r=oli-obk" 2022-02-17 16:00:04 +00:00
rustc_errors add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_expand compiler: clippy::complexity fixes 2022-02-03 23:16:03 +01:00
rustc_feature Rollup merge of #93337 - Amanieu:asm_tracking, r=tmiasko 2022-02-17 23:00:55 +01:00
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #93938 - BoxyUwU:fix_res_self_ty, r=lcnr 2022-02-14 12:26:43 +00:00
rustc_hir_pretty Rollup merge of #93746 - cjgillot:nodefii, r=nikomatsakis 2022-02-09 14:12:22 +09:00
rustc_incremental add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_index Adopt let_else in even more places 2022-02-16 22:43:39 +01:00
rustc_infer Rollup merge of #92683 - jackh726:issue-92033, r=estebank 2022-02-18 16:23:28 +01:00
rustc_interface Rollup merge of #92933 - bjorn3:no_bin_lib_mixing, r=estebank 2022-02-18 16:23:28 +01:00
rustc_lexer
rustc_lint Overhaul Const. 2022-02-15 16:19:59 +11:00
rustc_lint_defs implement lint for suspicious auto trait impls 2022-02-01 09:55:19 +01:00
rustc_llvm Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa 2022-02-18 23:23:03 +01:00
rustc_log
rustc_macros Make Decodable and Decoder infallible. 2022-01-22 10:38:31 +11:00
rustc_metadata rustdoc: Collect traits in scope for lang items 2022-02-18 16:11:23 +08:00
rustc_middle Rollup merge of #89892 - Nilstrieb:suggest-return-impl-trait, r=jackh726 2022-02-18 23:23:02 +01:00
rustc_mir_build use AllocId and Ty in ExprKind::StaticRef and delay ConstValue construction 2022-02-15 21:18:33 +01:00
rustc_mir_dataflow Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_mir_transform Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_monomorphize Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_parse Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_parse_format Correctly mark the span of captured arguments in format_args!() 2022-02-16 07:34:06 +00:00
rustc_passes change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_plugin_impl
rustc_privacy Overhaul Const. 2022-02-15 16:19:59 +11:00
rustc_query_impl Overhaul Const. 2022-02-15 16:19:59 +11:00
rustc_query_system Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis" 2022-02-11 07:18:06 +00:00
rustc_resolve Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_save_analysis change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_serialize Drop json::from_reader 2022-02-05 15:07:10 -05:00
rustc_session Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa 2022-02-18 23:23:03 +01:00
rustc_span Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa 2022-02-18 23:23:03 +01:00
rustc_symbol_mangling Overhaul Const. 2022-02-15 16:19:59 +11:00
rustc_target Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa 2022-02-18 23:23:03 +01:00
rustc_trait_selection Rollup merge of #93634 - matthiaskrgr:clippy_complexity_jan_2022, r=oli-obk 2022-02-18 16:23:33 +01:00
rustc_traits Overhaul Const. 2022-02-15 16:19:59 +11:00
rustc_ty_utils Overhaul RegionKind and Region. 2022-02-15 16:08:52 +11:00
rustc_type_ir Inline UnifyKey::index and UnifyKey::from_index 2022-02-15 19:07:06 +01:00
rustc_typeck Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa 2022-02-18 23:23:03 +01:00