From fd20f16ffcfc9d19ae191ebef7dbc9469ad1d1c6 Mon Sep 17 00:00:00 2001 From: Ana Hobden Date: Fri, 20 Feb 2026 13:12:31 -0800 Subject: [PATCH 1/3] Always check compile_flags for revision Previously, `self.props.compile_flags.windows(2)` would return an empty iterator in the case where `self.props.compile_flags` was 1 or 0 length. This created incorrectness where tests like `tests/mir-opt/pre-codegen/copy_and_clone.rs` would pass when they should fail. --- src/tools/compiletest/src/runtest.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 9df9db5b4b69c..b60630aacc632 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -504,12 +504,10 @@ impl<'test> TestCx<'test> { let normalized_revision = normalize_revision(revision); let cfg_arg = ["--cfg", &normalized_revision]; let arg = format!("--cfg={normalized_revision}"); - if self - .props - .compile_flags - .windows(2) - .any(|args| args == cfg_arg || args[0] == arg || args[1] == arg) - { + let contains_arg = + self.props.compile_flags.iter().any(|considered_arg| *considered_arg == arg); + let contains_cfg_arg = self.props.compile_flags.windows(2).any(|args| args == cfg_arg); + if contains_arg || contains_cfg_arg { error!( "redundant cfg argument `{normalized_revision}` is already created by the \ revision" From 7c011122e9053f6f71b297cd69ad9d2422600f4c Mon Sep 17 00:00:00 2001 From: Ana Hobden Date: Fri, 20 Feb 2026 13:18:10 -0800 Subject: [PATCH 2/3] Fix copy_and_clone.rs --- tests/mir-opt/pre-codegen/copy_and_clone.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/mir-opt/pre-codegen/copy_and_clone.rs b/tests/mir-opt/pre-codegen/copy_and_clone.rs index 05da25afa2a39..eb3c2eacc248b 100644 --- a/tests/mir-opt/pre-codegen/copy_and_clone.rs +++ b/tests/mir-opt/pre-codegen/copy_and_clone.rs @@ -1,4 +1,3 @@ -//@ [COPY] compile-flags: --cfg=copy //@ revisions: COPY CLONE // Test case from https://github.com/rust-lang/rust/issues/128081. From 3c9ca9be9d8e6a3af9cf6c36986e67a94f5b9d0d Mon Sep 17 00:00:00 2001 From: Ana Hobden Date: Fri, 20 Feb 2026 14:50:53 -0800 Subject: [PATCH 3/3] Add reasoning for double iteration --- src/tools/compiletest/src/runtest.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index b60630aacc632..fce3269b149a0 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -504,6 +504,7 @@ impl<'test> TestCx<'test> { let normalized_revision = normalize_revision(revision); let cfg_arg = ["--cfg", &normalized_revision]; let arg = format!("--cfg={normalized_revision}"); + // Handle if compile_flags is length 1 let contains_arg = self.props.compile_flags.iter().any(|considered_arg| *considered_arg == arg); let contains_cfg_arg = self.props.compile_flags.windows(2).any(|args| args == cfg_arg);