Skip to content

Commit 656f6ac

Browse files
committed
Handle llvm_version with suffix like "12.0.0libcxx"
1 parent 0ced530 commit 656f6ac

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/tools/compiletest/src/header.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -973,7 +973,11 @@ fn parse_normalization_string(line: &mut &str) -> Option<String> {
973973
}
974974

975975
pub fn extract_llvm_version(version: &str) -> Option<u32> {
976-
let version_without_suffix = version.trim_end_matches("git").split('-').next().unwrap();
976+
let pat = |c: char| !c.is_ascii_digit() && c != '.';
977+
let version_without_suffix = match version.find(pat) {
978+
Some(pos) => &version[..pos],
979+
None => version,
980+
};
977981
let components: Vec<u32> = version_without_suffix
978982
.split('.')
979983
.map(|s| s.parse().expect("Malformed version component"))

src/tools/compiletest/src/tests.rs

+4
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,8 @@ fn test_extract_llvm_version() {
6868
assert_eq!(extract_llvm_version("9.0.1-rust-1.43.0-dev"), Some(90001));
6969
assert_eq!(extract_llvm_version("9.3.1-rust-1.43.0-dev"), Some(90301));
7070
assert_eq!(extract_llvm_version("10.0.0-rust"), Some(100000));
71+
assert_eq!(extract_llvm_version("11.1.0"), Some(110100));
72+
assert_eq!(extract_llvm_version("12.0.0libcxx"), Some(120000));
73+
assert_eq!(extract_llvm_version("12.0.0-rc3"), Some(120000));
74+
assert_eq!(extract_llvm_version("13.0.0git"), Some(130000));
7175
}

0 commit comments

Comments
 (0)