Skip to content

Commit d7dd0e6

Browse files
authored
Merge pull request #39408 from nkcsgexi/sanitize-long-version
2 parents be2d00b + c12ccde commit d7dd0e6

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

lib/Serialization/SerializedModuleLoader.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,6 +1067,10 @@ swift::extractUserModuleVersionFromInterface(StringRef moduleInterfacePath) {
10671067
// Check the version number specified via -user-module-version.
10681068
StringRef current(args[I]), next(args[I + 1]);
10691069
if (current == "-user-module-version") {
1070+
// Sanitize versions that are too long
1071+
while(next.count('.') > 3) {
1072+
next = next.rsplit('.').first;
1073+
}
10701074
result.tryParse(next);
10711075
break;
10721076
}

test/Parse/versioned_canimport.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// RUN: %empty-directory(%t/module-cache)
55

66
// RUN: echo "public func foo() {}" > %t/Foo.swift
7-
// RUN: %target-swift-frontend -emit-module %t/Foo.swift -module-name Foo -swift-version 5 -disable-implicit-concurrency-module-import -user-module-version 113.330 -emit-module-interface-path %t/textual/Foo.swiftinterface -enable-library-evolution -emit-module-path %t/binary/Foo.swiftmodule
7+
// RUN: %target-swift-frontend -emit-module %t/Foo.swift -module-name Foo -swift-version 5 -disable-implicit-concurrency-module-import -user-module-version 113.330.1.2.3 -emit-module-interface-path %t/textual/Foo.swiftinterface -enable-library-evolution -emit-module-path %t/binary/Foo.swiftmodule
88
// RUN: %target-swift-frontend -emit-module %t/Foo.swift -module-name Bar -swift-version 5 -disable-implicit-concurrency-module-import -emit-module-interface-path %t/textual/Bar.swiftinterface -enable-library-evolution -emit-module-path %t/binary/Bar.swiftmodule
99

1010
// RUN: %target-typecheck-verify-swift -disable-implicit-concurrency-module-import -I %t/textual

0 commit comments

Comments
 (0)