From 5dab1210ebd7063bb6bc3e673fd83f68c15eb622 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 30 Sep 2024 11:57:52 -0700 Subject: [PATCH] Apply patches for LLVM 19 --- rust.spec | 4 + rustc-1.81.0-Update-to-LLVM-19.patch | 560 +++++++++++++++++++++++++++ 2 files changed, 564 insertions(+) create mode 100644 rustc-1.81.0-Update-to-LLVM-19.patch diff --git a/rust.spec b/rust.spec index 6ae4bfc..e17968b 100644 --- a/rust.spec +++ b/rust.spec @@ -165,6 +165,9 @@ Patch7: 0001-handle-no_std-targets-on-std-builds.patch # https://github.com/rust-lang/rust/pull/130960 Patch8: 0001-Only-add-an-automatic-SONAME-for-Rust-dylibs.patch +# https://github.com/rust-lang/rust/pull/127513 +Patch9: rustc-1.81.0-Update-to-LLVM-19.patch + ### RHEL-specific patches below ### # Simple rpm macros for rust-toolset (as opposed to full rust-packaging) @@ -670,6 +673,7 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %endif %patch -P7 -p1 %patch -P8 -p1 +%patch -P9 -p1 %if %with disabled_libssh2 %patch -P100 -p1 diff --git a/rustc-1.81.0-Update-to-LLVM-19.patch b/rustc-1.81.0-Update-to-LLVM-19.patch new file mode 100644 index 0000000..cd8145a --- /dev/null +++ b/rustc-1.81.0-Update-to-LLVM-19.patch @@ -0,0 +1,560 @@ +From 83f32e189ad59109a162a61d7844545c4eda48e7 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 9 Jul 2024 09:34:59 +0200 +Subject: [PATCH 1/4] Update to LLVM 19 + +(cherry picked from commit 579ab05e76f1434f3074195c7291895f1257bc97) +--- + .gitmodules | 2 +- + src/llvm-project | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/.gitmodules b/.gitmodules +index 9ad207a0d522..b5250d493864 100644 +--- a/.gitmodules ++++ b/.gitmodules +@@ -33,7 +33,7 @@ + [submodule "src/llvm-project"] + path = src/llvm-project + url = https://github.com/rust-lang/llvm-project.git +- branch = rustc/18.1-2024-05-19 ++ branch = rustc/19.1-2024-07-30 + shallow = true + [submodule "src/doc/embedded-book"] + path = src/doc/embedded-book +-- +2.46.1 + + +From 3bdb9f55ed61e1984e9b2ac23c328a4792e41b6e Mon Sep 17 00:00:00 2001 +From: Krasimir Georgiev +Date: Mon, 17 Jun 2024 09:35:38 +0000 +Subject: [PATCH 2/4] Disable MC/DC tests on LLVM 19 + +Disable the tests and generate an error if MC/DC is used on LLVM 19. +The support will be ported separately, as it is substantially +different on LLVM 19, and there are no plans to support both +versions. + +(cherry picked from commit 00bfd702dc8c3b760b4f965fd059a5f1db8bb2b1) +--- + compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 2 +- + tests/coverage/mcdc/condition-limit.rs | 1 + + tests/coverage/mcdc/if.rs | 1 + + tests/coverage/mcdc/inlined_expressions.rs | 1 + + tests/coverage/mcdc/nested_if.rs | 1 + + tests/coverage/mcdc/non_control_flow.rs | 1 + + 6 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +index 14757b27a375..493cfbcec2cf 100644 +--- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp ++++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +@@ -1557,7 +1557,7 @@ LLVMRustGetInstrProfMCDCTVBitmapUpdateIntrinsic(LLVMModuleRef M) { + + extern "C" LLVMValueRef + LLVMRustGetInstrProfMCDCCondBitmapIntrinsic(LLVMModuleRef M) { +-#if LLVM_VERSION_GE(18, 0) ++#if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0) + return wrap(llvm::Intrinsic::getDeclaration( + unwrap(M), llvm::Intrinsic::instrprof_mcdc_condbitmap_update)); + #else +diff --git a/tests/coverage/mcdc/condition-limit.rs b/tests/coverage/mcdc/condition-limit.rs +index 571c600ebd09..2ff46b11a168 100644 +--- a/tests/coverage/mcdc/condition-limit.rs ++++ b/tests/coverage/mcdc/condition-limit.rs +@@ -1,6 +1,7 @@ + #![feature(coverage_attribute)] + //@ edition: 2021 + //@ min-llvm-version: 18 ++//@ ignore-llvm-version: 19 - 99 + //@ compile-flags: -Zcoverage-options=mcdc + //@ llvm-cov-flags: --show-branches=count --show-mcdc + +diff --git a/tests/coverage/mcdc/if.rs b/tests/coverage/mcdc/if.rs +index d8e6b61a9d59..6f589659a3d7 100644 +--- a/tests/coverage/mcdc/if.rs ++++ b/tests/coverage/mcdc/if.rs +@@ -1,6 +1,7 @@ + #![feature(coverage_attribute)] + //@ edition: 2021 + //@ min-llvm-version: 18 ++//@ ignore-llvm-version: 19 - 99 + //@ compile-flags: -Zcoverage-options=mcdc + //@ llvm-cov-flags: --show-branches=count --show-mcdc + +diff --git a/tests/coverage/mcdc/inlined_expressions.rs b/tests/coverage/mcdc/inlined_expressions.rs +index 65f7ee66f399..fc1e4dae37c7 100644 +--- a/tests/coverage/mcdc/inlined_expressions.rs ++++ b/tests/coverage/mcdc/inlined_expressions.rs +@@ -1,6 +1,7 @@ + #![feature(coverage_attribute)] + //@ edition: 2021 + //@ min-llvm-version: 18 ++//@ ignore-llvm-version: 19 - 99 + //@ compile-flags: -Zcoverage-options=mcdc -Copt-level=z -Cllvm-args=--inline-threshold=0 + //@ llvm-cov-flags: --show-branches=count --show-mcdc + +diff --git a/tests/coverage/mcdc/nested_if.rs b/tests/coverage/mcdc/nested_if.rs +index f5068b5dcc23..f9ce7a0bc254 100644 +--- a/tests/coverage/mcdc/nested_if.rs ++++ b/tests/coverage/mcdc/nested_if.rs +@@ -1,6 +1,7 @@ + #![feature(coverage_attribute)] + //@ edition: 2021 + //@ min-llvm-version: 18 ++//@ ignore-llvm-version: 19 - 99 + //@ compile-flags: -Zcoverage-options=mcdc + //@ llvm-cov-flags: --show-branches=count --show-mcdc + +diff --git a/tests/coverage/mcdc/non_control_flow.rs b/tests/coverage/mcdc/non_control_flow.rs +index 77e64e6625b2..633d381a1aaf 100644 +--- a/tests/coverage/mcdc/non_control_flow.rs ++++ b/tests/coverage/mcdc/non_control_flow.rs +@@ -1,6 +1,7 @@ + #![feature(coverage_attribute)] + //@ edition: 2021 + //@ min-llvm-version: 18 ++//@ ignore-llvm-version: 19 - 99 + //@ compile-flags: -Zcoverage-options=mcdc + //@ llvm-cov-flags: --show-branches=count --show-mcdc + +-- +2.46.1 + + +From d9476247415418ec6cc3478636ada38cf28feb69 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 24 Jul 2024 16:03:36 +0200 +Subject: [PATCH 3/4] Crash test for issue 121444 has been fixed + +(cherry picked from commit b960390548b373bd80b5d9fe590ae3b577e8e8f2) +--- + tests/{crashes/121444.rs => ui/abi/large-byval-align.rs} | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + rename tests/{crashes/121444.rs => ui/abi/large-byval-align.rs} (68%) + +diff --git a/tests/crashes/121444.rs b/tests/ui/abi/large-byval-align.rs +similarity index 68% +rename from tests/crashes/121444.rs +rename to tests/ui/abi/large-byval-align.rs +index a6373a58c426..e39170df72b4 100644 +--- a/tests/crashes/121444.rs ++++ b/tests/ui/abi/large-byval-align.rs +@@ -1,11 +1,13 @@ +-//@ known-bug: #121444 + //@ compile-flags: -Copt-level=0 +-//@ edition:2021 + //@ only-x86_64 + //@ ignore-windows ++//@ min-llvm-version: 19 ++//@ build-pass ++ + #[repr(align(536870912))] + pub struct A(i64); + ++#[allow(improper_ctypes_definitions)] + pub extern "C" fn foo(x: A) {} + + fn main() { +-- +2.46.1 + + +From 05f84c2aa8853263b650b21637f689255413b923 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Tue, 30 Jul 2024 18:25:05 -0700 +Subject: [PATCH 4/4] Bless coverage/mcdc for line number changes + +(cherry picked from commit 33a36ea43851a767d8182938161b0dad4f9ae68c) +--- + tests/coverage/mcdc/condition-limit.cov-map | 8 +++--- + tests/coverage/mcdc/if.cov-map | 28 +++++++++---------- + .../coverage/mcdc/inlined_expressions.cov-map | 4 +-- + tests/coverage/mcdc/nested_if.cov-map | 16 +++++------ + tests/coverage/mcdc/non_control_flow.cov-map | 28 +++++++++---------- + 5 files changed, 42 insertions(+), 42 deletions(-) + +diff --git a/tests/coverage/mcdc/condition-limit.cov-map b/tests/coverage/mcdc/condition-limit.cov-map +index b4447a33691a..b565353572a7 100644 +--- a/tests/coverage/mcdc/condition-limit.cov-map ++++ b/tests/coverage/mcdc/condition-limit.cov-map +@@ -1,5 +1,5 @@ + Function name: condition_limit::bad +-Raw bytes (204): 0x[01, 01, 2c, 01, 05, 05, 1d, 05, 1d, 7a, 19, 05, 1d, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 21, 9b, 01, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 11, 01, 14, 01, 03, 09, 20, 05, 02, 03, 08, 00, 09, 05, 00, 0d, 00, 0e, 20, 7a, 1d, 00, 0d, 00, 0e, 7a, 00, 12, 00, 13, 20, 76, 19, 00, 12, 00, 13, 76, 00, 17, 00, 18, 20, 72, 15, 00, 17, 00, 18, 72, 00, 1c, 00, 1d, 20, 6e, 11, 00, 1c, 00, 1d, 6e, 00, 21, 00, 22, 20, 6a, 0d, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 20, 21, 09, 00, 26, 00, 27, 21, 00, 28, 02, 06, 9b, 01, 02, 06, 00, 07, 97, 01, 01, 01, 00, 02] ++Raw bytes (204): 0x[01, 01, 2c, 01, 05, 05, 1d, 05, 1d, 7a, 19, 05, 1d, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 21, 9b, 01, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 11, 01, 15, 01, 03, 09, 20, 05, 02, 03, 08, 00, 09, 05, 00, 0d, 00, 0e, 20, 7a, 1d, 00, 0d, 00, 0e, 7a, 00, 12, 00, 13, 20, 76, 19, 00, 12, 00, 13, 76, 00, 17, 00, 18, 20, 72, 15, 00, 17, 00, 18, 72, 00, 1c, 00, 1d, 20, 6e, 11, 00, 1c, 00, 1d, 6e, 00, 21, 00, 22, 20, 6a, 0d, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 20, 21, 09, 00, 26, 00, 27, 21, 00, 28, 02, 06, 9b, 01, 02, 06, 00, 07, 97, 01, 01, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 44 +@@ -48,7 +48,7 @@ Number of expressions: 44 + - expression 42 operands: lhs = Expression(43, Add), rhs = Counter(4) + - expression 43 operands: lhs = Counter(2), rhs = Counter(3) + Number of file 0 mappings: 17 +-- Code(Counter(0)) at (prev + 20, 1) to (start + 3, 9) ++- Code(Counter(0)) at (prev + 21, 1) to (start + 3, 9) + - Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 3, 8) to (start + 0, 9) + true = c1 + false = (c0 - c1) +@@ -88,7 +88,7 @@ Number of file 0 mappings: 17 + = (c8 + ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1))) + + Function name: condition_limit::good +-Raw bytes (180): 0x[01, 01, 20, 01, 05, 05, 19, 05, 19, 52, 15, 05, 19, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 1d, 6f, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 10, 01, 0c, 01, 03, 09, 28, 00, 06, 03, 08, 00, 22, 30, 05, 02, 01, 06, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 52, 19, 06, 05, 00, 00, 0d, 00, 0e, 52, 00, 12, 00, 13, 30, 4e, 15, 05, 04, 00, 00, 12, 00, 13, 4e, 00, 17, 00, 18, 30, 4a, 11, 04, 03, 00, 00, 17, 00, 18, 4a, 00, 1c, 00, 1d, 30, 46, 0d, 03, 02, 00, 00, 1c, 00, 1d, 46, 00, 21, 00, 22, 30, 1d, 09, 02, 00, 00, 00, 21, 00, 22, 1d, 00, 23, 02, 06, 6f, 02, 06, 00, 07, 6b, 01, 01, 00, 02] ++Raw bytes (180): 0x[01, 01, 20, 01, 05, 05, 19, 05, 19, 52, 15, 05, 19, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 4a, 0d, 4e, 11, 52, 15, 05, 19, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 1d, 6f, 73, 02, 77, 19, 7b, 15, 7f, 11, 09, 0d, 10, 01, 0d, 01, 03, 09, 28, 00, 06, 03, 08, 00, 22, 30, 05, 02, 01, 06, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 52, 19, 06, 05, 00, 00, 0d, 00, 0e, 52, 00, 12, 00, 13, 30, 4e, 15, 05, 04, 00, 00, 12, 00, 13, 4e, 00, 17, 00, 18, 30, 4a, 11, 04, 03, 00, 00, 17, 00, 18, 4a, 00, 1c, 00, 1d, 30, 46, 0d, 03, 02, 00, 00, 1c, 00, 1d, 46, 00, 21, 00, 22, 30, 1d, 09, 02, 00, 00, 00, 21, 00, 22, 1d, 00, 23, 02, 06, 6f, 02, 06, 00, 07, 6b, 01, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 32 +@@ -125,7 +125,7 @@ Number of expressions: 32 + - expression 30 operands: lhs = Expression(31, Add), rhs = Counter(4) + - expression 31 operands: lhs = Counter(2), rhs = Counter(3) + Number of file 0 mappings: 16 +-- Code(Counter(0)) at (prev + 12, 1) to (start + 3, 9) ++- Code(Counter(0)) at (prev + 13, 1) to (start + 3, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 6 } at (prev + 3, 8) to (start + 0, 34) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 6, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +diff --git a/tests/coverage/mcdc/if.cov-map b/tests/coverage/mcdc/if.cov-map +index 9a7d15f700df..ea8dedb0ac36 100644 +--- a/tests/coverage/mcdc/if.cov-map ++++ b/tests/coverage/mcdc/if.cov-map +@@ -1,5 +1,5 @@ + Function name: if::mcdc_check_a +-Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 0f, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] ++Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 10, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 4 +@@ -8,7 +8,7 @@ Number of expressions: 4 + - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) + - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 8 +-- Code(Counter(0)) at (prev + 15, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 16, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -24,7 +24,7 @@ Number of file 0 mappings: 8 + = (c3 + (c2 + (c0 - c1))) + + Function name: if::mcdc_check_b +-Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 17, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] ++Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 18, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 4 +@@ -33,7 +33,7 @@ Number of expressions: 4 + - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) + - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 8 +-- Code(Counter(0)) at (prev + 23, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 24, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -49,7 +49,7 @@ Number of file 0 mappings: 8 + = (c3 + (c2 + (c0 - c1))) + + Function name: if::mcdc_check_both +-Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 1f, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] ++Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 20, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 4 +@@ -58,7 +58,7 @@ Number of expressions: 4 + - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) + - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 8 +-- Code(Counter(0)) at (prev + 31, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 32, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -74,7 +74,7 @@ Number of file 0 mappings: 8 + = (c3 + (c2 + (c0 - c1))) + + Function name: if::mcdc_check_neither +-Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 07, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] ++Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 08, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 4 +@@ -83,7 +83,7 @@ Number of expressions: 4 + - expression 2 operands: lhs = Counter(3), rhs = Expression(3, Add) + - expression 3 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 8 +-- Code(Counter(0)) at (prev + 7, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -99,7 +99,7 @@ Number of file 0 mappings: 8 + = (c3 + (c2 + (c0 - c1))) + + Function name: if::mcdc_check_not_tree_decision +-Raw bytes (87): 0x[01, 01, 08, 01, 05, 02, 09, 05, 09, 0d, 1e, 02, 09, 11, 1b, 0d, 1e, 02, 09, 0a, 01, 31, 01, 03, 0a, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 03, 00, 09, 00, 0a, 02, 00, 0e, 00, 0f, 30, 09, 1e, 03, 02, 00, 00, 0e, 00, 0f, 0b, 00, 14, 00, 15, 30, 11, 0d, 02, 00, 00, 00, 14, 00, 15, 11, 00, 16, 02, 06, 1b, 02, 0c, 02, 06, 17, 03, 01, 00, 02] ++Raw bytes (87): 0x[01, 01, 08, 01, 05, 02, 09, 05, 09, 0d, 1e, 02, 09, 11, 1b, 0d, 1e, 02, 09, 0a, 01, 32, 01, 03, 0a, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 03, 00, 09, 00, 0a, 02, 00, 0e, 00, 0f, 30, 09, 1e, 03, 02, 00, 00, 0e, 00, 0f, 0b, 00, 14, 00, 15, 30, 11, 0d, 02, 00, 00, 00, 14, 00, 15, 11, 00, 16, 02, 06, 1b, 02, 0c, 02, 06, 17, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 8 +@@ -112,7 +112,7 @@ Number of expressions: 8 + - expression 6 operands: lhs = Counter(3), rhs = Expression(7, Sub) + - expression 7 operands: lhs = Expression(0, Sub), rhs = Counter(2) + Number of file 0 mappings: 10 +-- Code(Counter(0)) at (prev + 49, 1) to (start + 3, 10) ++- Code(Counter(0)) at (prev + 50, 1) to (start + 3, 10) + - MCDCDecision { bitmap_idx: 0, conditions_num: 3 } at (prev + 3, 8) to (start + 0, 21) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 3 } at (prev + 0, 9) to (start + 0, 10) + true = c1 +@@ -134,7 +134,7 @@ Number of file 0 mappings: 10 + = (c4 + (c3 + ((c0 - c1) - c2))) + + Function name: if::mcdc_check_tree_decision +-Raw bytes (87): 0x[01, 01, 08, 01, 05, 05, 0d, 05, 0d, 0d, 11, 09, 02, 1b, 1f, 0d, 11, 09, 02, 0a, 01, 27, 01, 03, 09, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0e, 00, 0f, 30, 0d, 0a, 02, 00, 03, 00, 0e, 00, 0f, 0a, 00, 13, 00, 14, 30, 11, 09, 03, 00, 00, 00, 13, 00, 14, 1b, 00, 16, 02, 06, 1f, 02, 0c, 02, 06, 17, 03, 01, 00, 02] ++Raw bytes (87): 0x[01, 01, 08, 01, 05, 05, 0d, 05, 0d, 0d, 11, 09, 02, 1b, 1f, 0d, 11, 09, 02, 0a, 01, 28, 01, 03, 09, 28, 00, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0e, 00, 0f, 30, 0d, 0a, 02, 00, 03, 00, 0e, 00, 0f, 0a, 00, 13, 00, 14, 30, 11, 09, 03, 00, 00, 00, 13, 00, 14, 1b, 00, 16, 02, 06, 1f, 02, 0c, 02, 06, 17, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 8 +@@ -147,7 +147,7 @@ Number of expressions: 8 + - expression 6 operands: lhs = Counter(3), rhs = Counter(4) + - expression 7 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 10 +-- Code(Counter(0)) at (prev + 39, 1) to (start + 3, 9) ++- Code(Counter(0)) at (prev + 40, 1) to (start + 3, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 3 } at (prev + 3, 8) to (start + 0, 21) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -169,7 +169,7 @@ Number of file 0 mappings: 10 + = ((c3 + c4) + (c2 + (c0 - c1))) + + Function name: if::mcdc_nested_if +-Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3b, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 01, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 0a, 00, 0b, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02] ++Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3c, 01, 01, 09, 28, 00, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 01, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 0a, 00, 0b, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 13 +@@ -187,7 +187,7 @@ Number of expressions: 13 + - expression 11 operands: lhs = Counter(4), rhs = Counter(5) + - expression 12 operands: lhs = Expression(0, Sub), rhs = Counter(2) + Number of file 0 mappings: 14 +-- Code(Counter(0)) at (prev + 59, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 60, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 14) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 0, false_next_id: 2 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +diff --git a/tests/coverage/mcdc/inlined_expressions.cov-map b/tests/coverage/mcdc/inlined_expressions.cov-map +index 09b7291c9649..8bb488c0dc07 100644 +--- a/tests/coverage/mcdc/inlined_expressions.cov-map ++++ b/tests/coverage/mcdc/inlined_expressions.cov-map +@@ -1,5 +1,5 @@ + Function name: inlined_expressions::inlined_instance +-Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 08, 01, 01, 06, 28, 00, 02, 01, 05, 00, 0b, 30, 05, 02, 01, 02, 00, 00, 05, 00, 06, 05, 00, 0a, 00, 0b, 30, 09, 0d, 02, 00, 00, 00, 0a, 00, 0b, 07, 01, 01, 00, 02] ++Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 09, 01, 01, 06, 28, 00, 02, 01, 05, 00, 0b, 30, 05, 02, 01, 02, 00, 00, 05, 00, 06, 05, 00, 0a, 00, 0b, 30, 09, 0d, 02, 00, 00, 00, 0a, 00, 0b, 07, 01, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 3 +@@ -7,7 +7,7 @@ Number of expressions: 3 + - expression 1 operands: lhs = Expression(2, Add), rhs = Expression(0, Sub) + - expression 2 operands: lhs = Counter(2), rhs = Counter(3) + Number of file 0 mappings: 6 +-- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 6) ++- Code(Counter(0)) at (prev + 9, 1) to (start + 1, 6) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 5) to (start + 0, 11) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 5) to (start + 0, 6) + true = c1 +diff --git a/tests/coverage/mcdc/nested_if.cov-map b/tests/coverage/mcdc/nested_if.cov-map +index adeb6cbc1fb8..0bd2aef814c2 100644 +--- a/tests/coverage/mcdc/nested_if.cov-map ++++ b/tests/coverage/mcdc/nested_if.cov-map +@@ -1,5 +1,5 @@ + Function name: nested_if::doubly_nested_if_in_condition +-Raw bytes (168): 0x[01, 01, 0e, 01, 05, 05, 11, 05, 11, 26, 19, 05, 11, 19, 1d, 19, 1d, 1d, 22, 26, 19, 05, 11, 11, 15, 09, 02, 0d, 37, 09, 02, 14, 01, 0f, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4e, 05, 00, 10, 00, 11, 28, 01, 02, 00, 10, 00, 36, 30, 11, 26, 01, 00, 02, 00, 10, 00, 11, 30, 15, 21, 02, 00, 00, 00, 15, 00, 36, 26, 00, 18, 00, 19, 28, 00, 02, 00, 18, 00, 1e, 30, 19, 22, 01, 02, 00, 00, 18, 00, 19, 19, 00, 1d, 00, 1e, 30, 1a, 1d, 02, 00, 00, 00, 1d, 00, 1e, 1a, 00, 21, 00, 25, 1f, 00, 2f, 00, 34, 2b, 00, 39, 00, 3e, 21, 00, 48, 00, 4c, 0d, 00, 4f, 02, 06, 37, 02, 0c, 02, 06, 33, 03, 01, 00, 02] ++Raw bytes (168): 0x[01, 01, 0e, 01, 05, 05, 11, 05, 11, 26, 19, 05, 11, 19, 1d, 19, 1d, 1d, 22, 26, 19, 05, 11, 11, 15, 09, 02, 0d, 37, 09, 02, 14, 01, 10, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4e, 05, 00, 10, 00, 11, 28, 01, 02, 00, 10, 00, 36, 30, 11, 26, 01, 00, 02, 00, 10, 00, 11, 30, 15, 21, 02, 00, 00, 00, 15, 00, 36, 26, 00, 18, 00, 19, 28, 00, 02, 00, 18, 00, 1e, 30, 19, 22, 01, 02, 00, 00, 18, 00, 19, 19, 00, 1d, 00, 1e, 30, 1a, 1d, 02, 00, 00, 00, 1d, 00, 1e, 1a, 00, 21, 00, 25, 1f, 00, 2f, 00, 34, 2b, 00, 39, 00, 3e, 21, 00, 48, 00, 4c, 0d, 00, 4f, 02, 06, 37, 02, 0c, 02, 06, 33, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 14 +@@ -18,7 +18,7 @@ Number of expressions: 14 + - expression 12 operands: lhs = Counter(3), rhs = Expression(13, Add) + - expression 13 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 20 +-- Code(Counter(0)) at (prev + 15, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 16, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 2, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 78) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -58,7 +58,7 @@ Number of file 0 mappings: 20 + = (c3 + (c2 + (c0 - c1))) + + Function name: nested_if::nested_if_in_condition +-Raw bytes (120): 0x[01, 01, 0b, 01, 05, 05, 11, 05, 11, 1e, 15, 05, 11, 11, 15, 1e, 15, 05, 11, 09, 02, 0d, 2b, 09, 02, 0e, 01, 07, 01, 01, 09, 28, 01, 02, 01, 08, 00, 2e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 2e, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 1e, 01, 00, 02, 00, 10, 00, 11, 1e, 00, 15, 00, 16, 30, 15, 1a, 02, 00, 00, 00, 15, 00, 16, 17, 00, 19, 00, 1d, 1a, 00, 27, 00, 2c, 0d, 00, 2f, 02, 06, 2b, 02, 0c, 02, 06, 27, 03, 01, 00, 02] ++Raw bytes (120): 0x[01, 01, 0b, 01, 05, 05, 11, 05, 11, 1e, 15, 05, 11, 11, 15, 1e, 15, 05, 11, 09, 02, 0d, 2b, 09, 02, 0e, 01, 08, 01, 01, 09, 28, 01, 02, 01, 08, 00, 2e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 2e, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 1e, 01, 00, 02, 00, 10, 00, 11, 1e, 00, 15, 00, 16, 30, 15, 1a, 02, 00, 00, 00, 15, 00, 16, 17, 00, 19, 00, 1d, 1a, 00, 27, 00, 2c, 0d, 00, 2f, 02, 06, 2b, 02, 0c, 02, 06, 27, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 11 +@@ -74,7 +74,7 @@ Number of expressions: 11 + - expression 9 operands: lhs = Counter(3), rhs = Expression(10, Add) + - expression 10 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 14 +-- Code(Counter(0)) at (prev + 7, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 1, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 46) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -103,7 +103,7 @@ Number of file 0 mappings: 14 + = (c3 + (c2 + (c0 - c1))) + + Function name: nested_if::nested_in_then_block_in_condition +-Raw bytes (176): 0x[01, 01, 12, 01, 05, 05, 11, 05, 11, 3a, 15, 05, 11, 11, 15, 33, 19, 11, 15, 19, 1d, 19, 1d, 1d, 2e, 33, 19, 11, 15, 3a, 15, 05, 11, 09, 02, 0d, 47, 09, 02, 14, 01, 22, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 3a, 01, 00, 02, 00, 10, 00, 11, 3a, 00, 15, 00, 16, 30, 15, 36, 02, 00, 00, 00, 15, 00, 16, 33, 00, 1c, 00, 1d, 28, 01, 02, 00, 1c, 00, 22, 30, 19, 2e, 01, 02, 00, 00, 1c, 00, 1d, 19, 00, 21, 00, 22, 30, 26, 1d, 02, 00, 00, 00, 21, 00, 22, 26, 00, 25, 00, 29, 2b, 00, 33, 00, 38, 36, 00, 44, 00, 49, 0d, 00, 4c, 02, 06, 47, 02, 0c, 02, 06, 43, 03, 01, 00, 02] ++Raw bytes (176): 0x[01, 01, 12, 01, 05, 05, 11, 05, 11, 3a, 15, 05, 11, 11, 15, 33, 19, 11, 15, 19, 1d, 19, 1d, 1d, 2e, 33, 19, 11, 15, 3a, 15, 05, 11, 09, 02, 0d, 47, 09, 02, 14, 01, 23, 01, 01, 09, 28, 02, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 00, 02, 00, 10, 00, 16, 30, 11, 3a, 01, 00, 02, 00, 10, 00, 11, 3a, 00, 15, 00, 16, 30, 15, 36, 02, 00, 00, 00, 15, 00, 16, 33, 00, 1c, 00, 1d, 28, 01, 02, 00, 1c, 00, 22, 30, 19, 2e, 01, 02, 00, 00, 1c, 00, 1d, 19, 00, 21, 00, 22, 30, 26, 1d, 02, 00, 00, 00, 21, 00, 22, 26, 00, 25, 00, 29, 2b, 00, 33, 00, 38, 36, 00, 44, 00, 49, 0d, 00, 4c, 02, 06, 47, 02, 0c, 02, 06, 43, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 18 +@@ -126,7 +126,7 @@ Number of expressions: 18 + - expression 16 operands: lhs = Counter(3), rhs = Expression(17, Add) + - expression 17 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 20 +-- Code(Counter(0)) at (prev + 34, 1) to (start + 1, 9) ++- Code(Counter(0)) at (prev + 35, 1) to (start + 1, 9) + - MCDCDecision { bitmap_idx: 2, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 75) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +@@ -167,7 +167,7 @@ Number of file 0 mappings: 20 + = (c3 + (c2 + (c0 - c1))) + + Function name: nested_if::nested_single_condition_decision +-Raw bytes (85): 0x[01, 01, 06, 01, 05, 05, 11, 05, 11, 09, 02, 0d, 17, 09, 02, 0b, 01, 17, 01, 04, 09, 28, 00, 02, 04, 08, 00, 29, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 29, 05, 00, 10, 00, 11, 20, 11, 0a, 00, 10, 00, 11, 11, 00, 14, 00, 19, 0a, 00, 23, 00, 27, 0d, 00, 2a, 02, 06, 17, 02, 0c, 02, 06, 13, 03, 01, 00, 02] ++Raw bytes (85): 0x[01, 01, 06, 01, 05, 05, 11, 05, 11, 09, 02, 0d, 17, 09, 02, 0b, 01, 18, 01, 04, 09, 28, 00, 02, 04, 08, 00, 29, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 29, 05, 00, 10, 00, 11, 20, 11, 0a, 00, 10, 00, 11, 11, 00, 14, 00, 19, 0a, 00, 23, 00, 27, 0d, 00, 2a, 02, 06, 17, 02, 0c, 02, 06, 13, 03, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 6 +@@ -178,7 +178,7 @@ Number of expressions: 6 + - expression 4 operands: lhs = Counter(3), rhs = Expression(5, Add) + - expression 5 operands: lhs = Counter(2), rhs = Expression(0, Sub) + Number of file 0 mappings: 11 +-- Code(Counter(0)) at (prev + 23, 1) to (start + 4, 9) ++- Code(Counter(0)) at (prev + 24, 1) to (start + 4, 9) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 4, 8) to (start + 0, 41) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9) + true = c1 +diff --git a/tests/coverage/mcdc/non_control_flow.cov-map b/tests/coverage/mcdc/non_control_flow.cov-map +index f8576831e75f..0c6928b684d6 100644 +--- a/tests/coverage/mcdc/non_control_flow.cov-map ++++ b/tests/coverage/mcdc/non_control_flow.cov-map +@@ -1,5 +1,5 @@ + Function name: non_control_flow::assign_3 +-Raw bytes (89): 0x[01, 01, 09, 05, 07, 0b, 11, 09, 0d, 01, 05, 01, 05, 22, 11, 01, 05, 22, 11, 01, 05, 0a, 01, 16, 01, 00, 28, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 22, 01, 00, 02, 00, 0d, 00, 0e, 22, 00, 12, 00, 13, 30, 1e, 11, 02, 03, 00, 00, 12, 00, 13, 1e, 00, 17, 00, 18, 30, 09, 0d, 03, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02] ++Raw bytes (89): 0x[01, 01, 09, 05, 07, 0b, 11, 09, 0d, 01, 05, 01, 05, 22, 11, 01, 05, 22, 11, 01, 05, 0a, 01, 17, 01, 00, 28, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 22, 01, 00, 02, 00, 0d, 00, 0e, 22, 00, 12, 00, 13, 30, 1e, 11, 02, 03, 00, 00, 12, 00, 13, 1e, 00, 17, 00, 18, 30, 09, 0d, 03, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 9 +@@ -13,7 +13,7 @@ Number of expressions: 9 + - expression 7 operands: lhs = Expression(8, Sub), rhs = Counter(4) + - expression 8 operands: lhs = Counter(0), rhs = Counter(1) + Number of file 0 mappings: 10 +-- Code(Counter(0)) at (prev + 22, 1) to (start + 0, 40) ++- Code(Counter(0)) at (prev + 23, 1) to (start + 0, 40) + - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) + = (c1 + ((c2 + c3) + c4)) + - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) +@@ -35,7 +35,7 @@ Number of file 0 mappings: 10 + = (c1 + ((c2 + c3) + c4)) + + Function name: non_control_flow::assign_3_bis +-Raw bytes (85): 0x[01, 01, 07, 07, 11, 09, 0d, 01, 05, 05, 09, 16, 1a, 05, 09, 01, 05, 0a, 01, 1b, 01, 00, 2c, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 1a, 01, 03, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 16, 03, 00, 02, 00, 12, 00, 13, 13, 00, 17, 00, 18, 30, 0d, 11, 02, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02] ++Raw bytes (85): 0x[01, 01, 07, 07, 11, 09, 0d, 01, 05, 05, 09, 16, 1a, 05, 09, 01, 05, 0a, 01, 1c, 01, 00, 2c, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 03, 00, 0d, 00, 18, 30, 05, 1a, 01, 03, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 16, 03, 00, 02, 00, 12, 00, 13, 13, 00, 17, 00, 18, 30, 0d, 11, 02, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 7 +@@ -47,7 +47,7 @@ Number of expressions: 7 + - expression 5 operands: lhs = Counter(1), rhs = Counter(2) + - expression 6 operands: lhs = Counter(0), rhs = Counter(1) + Number of file 0 mappings: 10 +-- Code(Counter(0)) at (prev + 27, 1) to (start + 0, 44) ++- Code(Counter(0)) at (prev + 28, 1) to (start + 0, 44) + - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) + = ((c2 + c3) + c4) + - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) +@@ -68,7 +68,7 @@ Number of file 0 mappings: 10 + = ((c2 + c3) + c4) + + Function name: non_control_flow::assign_and +-Raw bytes (64): 0x[01, 01, 04, 07, 0e, 09, 0d, 01, 05, 01, 05, 08, 01, 0c, 01, 00, 21, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02] ++Raw bytes (64): 0x[01, 01, 04, 07, 0e, 09, 0d, 01, 05, 01, 05, 08, 01, 0d, 01, 00, 21, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 4 +@@ -77,7 +77,7 @@ Number of expressions: 4 + - expression 2 operands: lhs = Counter(0), rhs = Counter(1) + - expression 3 operands: lhs = Counter(0), rhs = Counter(1) + Number of file 0 mappings: 8 +-- Code(Counter(0)) at (prev + 12, 1) to (start + 0, 33) ++- Code(Counter(0)) at (prev + 13, 1) to (start + 0, 33) + - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) + = ((c2 + c3) + (c0 - c1)) + - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) +@@ -93,7 +93,7 @@ Number of file 0 mappings: 8 + = ((c2 + c3) + (c0 - c1)) + + Function name: non_control_flow::assign_or +-Raw bytes (64): 0x[01, 01, 04, 07, 0d, 05, 09, 01, 05, 01, 05, 08, 01, 11, 01, 00, 20, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 00, 02, 00, 0d, 00, 0e, 0e, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02] ++Raw bytes (64): 0x[01, 01, 04, 07, 0d, 05, 09, 01, 05, 01, 05, 08, 01, 12, 01, 00, 20, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 00, 02, 00, 0d, 00, 0e, 0e, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 4 +@@ -102,7 +102,7 @@ Number of expressions: 4 + - expression 2 operands: lhs = Counter(0), rhs = Counter(1) + - expression 3 operands: lhs = Counter(0), rhs = Counter(1) + Number of file 0 mappings: 8 +-- Code(Counter(0)) at (prev + 17, 1) to (start + 0, 32) ++- Code(Counter(0)) at (prev + 18, 1) to (start + 0, 32) + - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) + = ((c1 + c2) + c3) + - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) +@@ -119,15 +119,15 @@ Number of file 0 mappings: 8 + = ((c1 + c2) + c3) + + Function name: non_control_flow::foo +-Raw bytes (9): 0x[01, 01, 00, 01, 01, 25, 01, 02, 02] ++Raw bytes (9): 0x[01, 01, 00, 01, 01, 26, 01, 02, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 0 + Number of file 0 mappings: 1 +-- Code(Counter(0)) at (prev + 37, 1) to (start + 2, 2) ++- Code(Counter(0)) at (prev + 38, 1) to (start + 2, 2) + + Function name: non_control_flow::func_call +-Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 29, 01, 01, 0a, 28, 00, 02, 01, 09, 00, 0f, 30, 05, 02, 01, 02, 00, 00, 09, 00, 0a, 05, 00, 0e, 00, 0f, 30, 09, 0d, 02, 00, 00, 00, 0e, 00, 0f, 07, 01, 01, 00, 02] ++Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 2a, 01, 01, 0a, 28, 00, 02, 01, 09, 00, 0f, 30, 05, 02, 01, 02, 00, 00, 09, 00, 0a, 05, 00, 0e, 00, 0f, 30, 09, 0d, 02, 00, 00, 00, 0e, 00, 0f, 07, 01, 01, 00, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 3 +@@ -135,7 +135,7 @@ Number of expressions: 3 + - expression 1 operands: lhs = Expression(2, Add), rhs = Expression(0, Sub) + - expression 2 operands: lhs = Counter(2), rhs = Counter(3) + Number of file 0 mappings: 6 +-- Code(Counter(0)) at (prev + 41, 1) to (start + 1, 10) ++- Code(Counter(0)) at (prev + 42, 1) to (start + 1, 10) + - MCDCDecision { bitmap_idx: 0, conditions_num: 2 } at (prev + 1, 9) to (start + 0, 15) + - MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 9) to (start + 0, 10) + true = c1 +@@ -148,7 +148,7 @@ Number of file 0 mappings: 6 + = ((c2 + c3) + (c0 - c1)) + + Function name: non_control_flow::right_comb_tree +-Raw bytes (139): 0x[01, 01, 13, 07, 1a, 0b, 19, 0f, 15, 13, 11, 09, 0d, 01, 05, 01, 05, 05, 19, 05, 19, 4a, 15, 05, 19, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 0e, 01, 20, 01, 00, 41, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 05, 00, 0d, 00, 2a, 30, 05, 1a, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 13, 00, 14, 30, 4a, 19, 02, 03, 00, 00, 13, 00, 14, 4a, 00, 19, 00, 1a, 30, 46, 15, 03, 04, 00, 00, 19, 00, 1a, 46, 00, 1f, 00, 20, 30, 42, 11, 04, 05, 00, 00, 1f, 00, 20, 42, 00, 24, 00, 27, 30, 09, 0d, 05, 00, 00, 00, 24, 00, 27, 03, 01, 05, 01, 02] ++Raw bytes (139): 0x[01, 01, 13, 07, 1a, 0b, 19, 0f, 15, 13, 11, 09, 0d, 01, 05, 01, 05, 05, 19, 05, 19, 4a, 15, 05, 19, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 0e, 01, 21, 01, 00, 41, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 00, 05, 00, 0d, 00, 2a, 30, 05, 1a, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 13, 00, 14, 30, 4a, 19, 02, 03, 00, 00, 13, 00, 14, 4a, 00, 19, 00, 1a, 30, 46, 15, 03, 04, 00, 00, 19, 00, 1a, 46, 00, 1f, 00, 20, 30, 42, 11, 04, 05, 00, 00, 1f, 00, 20, 42, 00, 24, 00, 27, 30, 09, 0d, 05, 00, 00, 00, 24, 00, 27, 03, 01, 05, 01, 02] + Number of files: 1 + - file 0 => global file 1 + Number of expressions: 19 +@@ -172,7 +172,7 @@ Number of expressions: 19 + - expression 17 operands: lhs = Expression(18, Sub), rhs = Counter(5) + - expression 18 operands: lhs = Counter(1), rhs = Counter(6) + Number of file 0 mappings: 14 +-- Code(Counter(0)) at (prev + 32, 1) to (start + 0, 65) ++- Code(Counter(0)) at (prev + 33, 1) to (start + 0, 65) + - Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10) + = (((((c2 + c3) + c4) + c5) + c6) + (c0 - c1)) + - Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14) +-- +2.46.1 +