rust/tests
bors 7a58674259 Auto merge of #124255 - RenjiSann:renji/mcdc-nested-expressions, r=Zalathar
MCDC coverage: support nested decision coverage

#123409 provided the initial MCDC coverage implementation.

As referenced in #124144, it does not currently support "nested" decisions, like the following example :

```rust
fn nested_if_in_condition(a: bool, b: bool, c: bool) {
    if a && if b || c { true } else { false } {
        say("yes");
    } else {
        say("no");
    }
}
```

Note that there is an if-expression (`if b || c ...`) embedded inside a boolean expression in the decision of an outer if-expression.

This PR proposes a workaround for this cases, by introducing a Decision context stack, and by handing several `temporary condition bitmaps` instead of just one.
When instrumenting boolean expressions, if the current node is a leaf condition (i.e. not a `||`/`&&` logical operator nor a `!` not operator), we insert a new decision context, such that if there are more boolean expressions inside the condition, they are handled as separate expressions.

On the codegen LLVM side, we allocate as many `temp_cond_bitmap`s as necessary to handle the maximum encountered decision depth.
2024-04-29 11:54:49 +00:00
..
assembly
auxiliary
codegen
codegen-units
coverage Auto merge of #124255 - RenjiSann:renji/mcdc-nested-expressions, r=Zalathar 2024-04-29 11:54:49 +00:00
coverage-run-rustdoc
crashes add test for https://github.com/rust-lang/rust/issues/109812 2024-04-28 10:23:10 +02:00
debuginfo Update lldb only tests 2024-04-26 04:11:05 +03:00
incremental
mir-opt
pretty
run-make Use named struct arguments instead of comment named args 2024-04-28 17:17:22 +02:00
run-make-fulldeps
run-pass-valgrind
rustdoc Fix the assertion crash from rustdoc document indent widths 2024-04-28 11:17:09 +08:00
rustdoc-gui
rustdoc-js
rustdoc-js-std
rustdoc-json
rustdoc-ui
ui Auto merge of #124505 - Enselic:aux-bin-fix, r=jieyouxu 2024-04-29 09:14:09 +00:00
ui-fulldeps
COMPILER_TESTS.md