rust/compiler
bors 506512391b Auto merge of #124676 - djkoloski:relax_multiple_sanitizers, r=cuviper,rcvalle
Relax restrictions on multiple sanitizers

Most combinations of LLVM sanitizers are legal-enough to enable simultaneously. This change will allow simultaneously enabling ASAN and shadow call stacks on supported platforms.

I used this python script to generate the mutually-exclusive sanitizer combinations:

```python
#!/usr/bin/python3

import subprocess

flags = [
    ["-fsanitize=address"],
    ["-fsanitize=leak"],
    ["-fsanitize=memory"],
    ["-fsanitize=thread"],
    ["-fsanitize=hwaddress"],
    ["-fsanitize=cfi", "-flto", "-fvisibility=hidden"],
    ["-fsanitize=memtag", "--target=aarch64-linux-android", "-march=armv8a+memtag"],
    ["-fsanitize=shadow-call-stack"],
    ["-fsanitize=kcfi", "-flto", "-fvisibility=hidden"],
    ["-fsanitize=kernel-address"],
    ["-fsanitize=safe-stack"],
    ["-fsanitize=dataflow"],
]

for i in range(len(flags)):
    for j in range(i):
        command = ["clang++"] + flags[i] + flags[j] + ["-o", "main.o", "-c", "main.cpp"]
        completed = subprocess.run(command, stderr=subprocess.DEVNULL)
        if completed.returncode != 0:
            first = flags[i][0][11:].replace('-', '').upper()
            second = flags[j][0][11:].replace('-', '').upper()
            print(f"(SanitizerSet::{first}, SanitizerSet::{second}),")
```
2024-05-21 15:35:29 +00:00
..
rustc Change SIGPIPE ui from #[unix_sigpipe = "..."] to -Zon-broken-pipe=... 2024-05-02 19:48:29 +02:00
rustc_abi Temporarily revert to NonZeroUsize in rustc-abi to fix building on stable 2024-05-18 11:27:29 +03:00
rustc_arena
rustc_ast Implement BOXED_SLICE_INTO_ITER 2024-05-20 19:21:30 -04:00
rustc_ast_ir Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
rustc_ast_lowering Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
rustc_ast_passes Rollup merge of #125314 - jdonszelmann:global-registration-feature-gate, r=pnkfelix 2024-05-20 18:13:49 +02:00
rustc_ast_pretty Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
rustc_attr Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
rustc_baked_icu_data
rustc_borrowck Auto merge of #123812 - compiler-errors:additional-fixes, r=fmease 2024-05-21 08:06:41 +00:00
rustc_builtin_macros Auto merge of #125077 - spastorino:add-new-fnsafety-enum2, r=jackh726 2024-05-18 19:35:24 +00:00
rustc_codegen_cranelift Rollup merge of #125266 - workingjubilee:stream-plastic-love, r=RalfJung,nikic 2024-05-21 12:47:06 +02:00
rustc_codegen_gcc Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
rustc_codegen_llvm Rollup merge of #125266 - workingjubilee:stream-plastic-love, r=RalfJung,nikic 2024-05-21 12:47:06 +02:00
rustc_codegen_ssa Auto merge of #124676 - djkoloski:relax_multiple_sanitizers, r=cuviper,rcvalle 2024-05-21 15:35:29 +00:00
rustc_const_eval Remove erroneous comment. 2024-05-21 14:56:57 +10:00
rustc_data_structures Rollup merge of #124818 - compiler-errors:ena, r=Mark-Simulacrum 2024-05-11 08:00:15 +02:00
rustc_driver
rustc_driver_impl Don't call env::set_var in rustc_driver::install_ice_hook 2024-05-13 09:37:29 +02:00
rustc_error_codes Remove a stray backtick in an error explanation. 2024-05-13 07:53:38 +10:00
rustc_error_messages
rustc_errors Uplift FnSig 2024-05-16 09:52:01 -04:00
rustc_expand Auto merge of #125180 - mu001999-contrib:improve/macro-diag, r=fee1-dead 2024-05-18 13:02:48 +00:00
rustc_feature Implement BOXED_SLICE_INTO_ITER 2024-05-20 19:21:30 -04:00
rustc_fluent_macro
rustc_fs_util Stabilize std::path::absolute 2024-04-24 14:35:02 +00:00
rustc_graphviz
rustc_hir Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
rustc_hir_analysis Auto merge of #125358 - matthiaskrgr:rollup-mx841tg, r=matthiaskrgr 2024-05-21 12:50:09 +00:00
rustc_hir_pretty Rollup merge of #125158 - Nilstrieb:block-indent, r=compiler-errors 2024-05-21 00:47:02 +02:00
rustc_hir_typeck Auto merge of #124097 - compiler-errors:box-into-iter, r=WaffleLapkin 2024-05-21 10:13:53 +00:00
rustc_incremental Auto merge of #123441 - saethlin:fixed-len-file-names, r=oli-obk 2024-05-03 17:41:48 +00:00
rustc_index Simplify static_assert_sizes. 2024-04-18 15:36:25 +10:00
rustc_index_macros rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
rustc_infer Auto merge of #125284 - compiler-errors:uplift-misc, r=lcnr 2024-05-21 02:51:38 +00:00
rustc_interface note value of RUST_MIN_STACK and explain unsetting 2024-05-19 20:09:03 -07:00
rustc_lexer Improved the compiler code with clippy 2024-04-24 09:41:44 +02:00
rustc_lint Adjust the method ambiguity lint too 2024-05-20 19:21:38 -04:00
rustc_lint_defs Auto merge of #125219 - Urgau:check-cfg-cargo-config, r=fmease 2024-05-20 20:14:09 +00:00
rustc_llvm Update cc crate to v1.0.97 2024-05-08 15:06:35 +00:00
rustc_log Construct SourceMap at the same time as SessionGlobals. 2024-04-16 13:02:53 +10:00
rustc_macros Lift Lift 2024-05-10 15:44:03 -04:00
rustc_metadata Reorder some use items. 2024-05-21 14:55:37 +10:00
rustc_middle Auto merge of #125358 - matthiaskrgr:rollup-mx841tg, r=matthiaskrgr 2024-05-21 12:50:09 +00:00
rustc_mir_build Rollup merge of #125173 - scottmcm:never-checked, r=davidtwco 2024-05-20 18:13:48 +02:00
rustc_mir_dataflow Remove Rvalue::CheckedBinaryOp 2024-05-17 20:33:02 -07:00
rustc_mir_transform Rollup merge of #125173 - scottmcm:never-checked, r=davidtwco 2024-05-20 18:13:48 +02:00
rustc_monomorphize Add and use generics.is_empty() and generics.is_own_empty, rather than using generics' attributes 2024-05-19 11:10:56 -03:00
rustc_next_trait_solver Rework var resolution in InferCtxtLike, uplift EagerResolver 2024-05-20 13:57:58 -04:00
rustc_parse Auto merge of #125077 - spastorino:add-new-fnsafety-enum2, r=jackh726 2024-05-18 19:35:24 +00:00
rustc_parse_format Simplify static_assert_sizes. 2024-04-18 15:36:25 +10:00
rustc_passes Minor pub and whitespace cleanups. 2024-05-21 14:56:57 +10:00
rustc_pattern_analysis Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
rustc_privacy split out AliasTy -> AliasTerm 2024-05-13 11:59:42 -04:00
rustc_query_impl Remove extern crate rustc_middle from rustc_query_impl. 2024-05-13 08:20:18 +10:00
rustc_query_system Remove some unneeded Cargo.toml dependencies. 2024-05-03 15:33:52 +10:00
rustc_resolve fix typo 2024-05-19 10:23:31 +02:00
rustc_sanitizers Fix typos (taking into account review comments) 2024-05-18 18:12:18 +02:00
rustc_serialize Step bootstrap cfgs 2024-05-01 22:19:11 -04:00
rustc_session Auto merge of #124676 - djkoloski:relax_multiple_sanitizers, r=cuviper,rcvalle 2024-05-21 15:35:29 +00:00
rustc_smir Implement BOXED_SLICE_INTO_ITER 2024-05-20 19:21:30 -04:00
rustc_span Auto merge of #125358 - matthiaskrgr:rollup-mx841tg, r=matthiaskrgr 2024-05-21 12:50:09 +00:00
rustc_symbol_mangling Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
rustc_target Auto merge of #124676 - djkoloski:relax_multiple_sanitizers, r=cuviper,rcvalle 2024-05-21 15:35:29 +00:00
rustc_trait_selection Auto merge of #125284 - compiler-errors:uplift-misc, r=lcnr 2024-05-21 02:51:38 +00:00
rustc_traits split out AliasTy -> AliasTerm 2024-05-13 11:59:42 -04:00
rustc_transmute Align: add bytes_usize and bits_usize 2024-05-01 15:57:33 +02:00
rustc_ty_utils Rollup merge of #125173 - scottmcm:never-checked, r=davidtwco 2024-05-20 18:13:48 +02:00
rustc_type_ir Uplift TermKind 2024-05-20 13:57:58 -04:00
rustc_type_ir_macros Uplift TraitPredicate 2024-05-11 18:20:00 -04:00
stable_mir Implement BOXED_SLICE_INTO_ITER 2024-05-20 19:21:30 -04:00