mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
Rollup merge of #132310 - jieyouxu:max-llvm-version, r=onur-ozkan
compiletest: add `max-llvm-major-version` directive To complement existing `min-llvm-version` so contributors don't have to use `ignore-llvm-version: 20 - 99` to emulate `max-llvm-major-version: 19`. Closes #132305. cc `@workingjubilee` who suggested this. ### Implementation steps - [x] 1. Implement the directive (this PR) - [x] 2. Open an accompanying dev-guide PR to describe the directive (https://github.com/rust-lang/rustc-dev-guide/pull/2129) r? bootstrap
This commit is contained in:
commit
475203f098
@ -120,6 +120,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
|
||||
"incremental",
|
||||
"known-bug",
|
||||
"llvm-cov-flags",
|
||||
"max-llvm-major-version",
|
||||
"min-cdb-version",
|
||||
"min-gdb-version",
|
||||
"min-lldb-version",
|
||||
|
@ -1546,6 +1546,20 @@ fn ignore_llvm(config: &Config, line: &str) -> IgnoreDecision {
|
||||
),
|
||||
};
|
||||
}
|
||||
} else if let Some(version_string) =
|
||||
config.parse_name_value_directive(line, "max-llvm-major-version")
|
||||
{
|
||||
let max_version = extract_llvm_version(&version_string);
|
||||
// Ignore if actual major version is larger than the maximum required major version.
|
||||
if actual_version.major > max_version.major {
|
||||
return IgnoreDecision::Ignore {
|
||||
reason: format!(
|
||||
"ignored when the LLVM version ({actual_version}) is newer than major\
|
||||
version {}",
|
||||
max_version.major
|
||||
),
|
||||
};
|
||||
}
|
||||
} else if let Some(version_string) =
|
||||
config.parse_name_value_directive(line, "min-system-llvm-version")
|
||||
{
|
||||
|
@ -299,6 +299,15 @@ fn llvm_version() {
|
||||
|
||||
let config: Config = cfg().llvm_version("10.6.2").build();
|
||||
assert!(!check_ignore(&config, "//@ exact-llvm-major-version: 10"));
|
||||
|
||||
let config: Config = cfg().llvm_version("19.0.0").build();
|
||||
assert!(!check_ignore(&config, "//@ max-llvm-major-version: 19"));
|
||||
|
||||
let config: Config = cfg().llvm_version("19.1.2").build();
|
||||
assert!(!check_ignore(&config, "//@ max-llvm-major-version: 19"));
|
||||
|
||||
let config: Config = cfg().llvm_version("20.0.0").build();
|
||||
assert!(check_ignore(&config, "//@ max-llvm-major-version: 19"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -2,7 +2,7 @@
|
||||
//@ compile-flags: --target riscv64imac-unknown-none-elf -Ctarget-feature=+f,+d
|
||||
//@ needs-llvm-components: riscv
|
||||
//@ revisions: LLVM-PRE-20 LLVM-POST-20
|
||||
//@ [LLVM-PRE-20] ignore-llvm-version: 20 - 99
|
||||
//@ [LLVM-PRE-20] max-llvm-major-version: 19
|
||||
//@ [LLVM-POST-20] min-llvm-version: 20
|
||||
|
||||
#![feature(no_core, lang_items, f16)]
|
||||
|
@ -1,7 +1,7 @@
|
||||
//@ revisions: DEBUG LLVM-PRE-20-OPTIM LLVM-20-OPTIM
|
||||
//@ [DEBUG] compile-flags: -C opt-level=0
|
||||
//@ [LLVM-PRE-20-OPTIM] compile-flags: -C opt-level=3
|
||||
//@ [LLVM-PRE-20-OPTIM] ignore-llvm-version: 20 - 99
|
||||
//@ [LLVM-PRE-20-OPTIM] max-llvm-major-version: 19
|
||||
//@ [LLVM-20-OPTIM] compile-flags: -C opt-level=3
|
||||
//@ [LLVM-20-OPTIM] min-llvm-version: 20
|
||||
//@ assembly-output: emit-asm
|
||||
|
@ -7,7 +7,7 @@
|
||||
//@ [LEAF] compile-flags: -Z branch-protection=pac-ret,leaf
|
||||
//@ [BKEY] compile-flags: -Z branch-protection=pac-ret,b-key
|
||||
//@ compile-flags: --target aarch64-unknown-linux-gnu
|
||||
//@ ignore-llvm-version: 19 - 99
|
||||
//@ max-llvm-major-version: 18
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, lang_items)]
|
||||
|
@ -2,7 +2,7 @@
|
||||
// scalar value.
|
||||
|
||||
//@ compile-flags: -O -C no-prepopulate-passes
|
||||
//@ ignore-llvm-version: 19 - 99
|
||||
//@ max-llvm-major-version: 18
|
||||
|
||||
#![crate_type = "lib"]
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
//@ revisions: llvm-pre-20 llvm-20
|
||||
//@ [llvm-20] min-llvm-version: 20
|
||||
//@ [llvm-pre-20] ignore-llvm-version: 20 - 99
|
||||
//@ [llvm-pre-20] max-llvm-major-version: 19
|
||||
//@ compile-flags: -C opt-level=3
|
||||
|
||||
#![crate_type = "lib"]
|
||||
|
Loading…
Reference in New Issue
Block a user