Skip to content

Commit 655fa1e

Browse files
committed
inlining check: use starts_with() instead of contains() while checking for subroutine call instruction
1 parent 5508b2e commit 655fa1e

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

crates/stdarch-test/src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,17 @@ pub fn assert(shim_addr: usize, fnname: &str, expected: &str) {
9494
// inlining failed: all intrinsics are `#[inline(always)]`, so calling one
9595
// intrinsic from another should not generate subroutine call instructions.
9696
let inlining_failed = if cfg!(target_arch = "x86_64") || cfg!(target_arch = "wasm32") {
97-
instrs.iter().any(|s| s.contains("call "))
97+
instrs.iter().any(|s| s.starts_with("call "))
9898
} else if cfg!(target_arch = "x86") {
9999
instrs.windows(2).any(|s| {
100100
// On 32-bit x86 position independent code will call itself and be
101101
// immediately followed by a `pop` to learn about the current address.
102102
// Let's not take that into account when considering whether a function
103103
// failed inlining something.
104-
s[0].contains("call ") && s[1].contains("pop") // FIXME: original logic but does not match comment
104+
s[0].starts_with("call ") && s[1].starts_with("pop") // FIXME: original logic but does not match comment
105105
})
106106
} else if cfg!(target_arch = "aarch64") {
107-
instrs.iter().any(|s| s.contains("bl "))
107+
instrs.iter().any(|s| s.starts_with("bl "))
108108
} else {
109109
// FIXME: Add detection for other archs
110110
false

0 commit comments

Comments
 (0)