Closed
Description
Description
The main branch toolchain build started to crash around Feb 16, 2025 with a SIL verification failure when building swift-syntax in release mode in our Windows CI.
error: compile command failed due to signal 6 (use -v to see invocation)
SIL verification failed: A load with trivial ownership must load a trivial type: LI->getType().isTrivial(*LI->getFunction())
Verifying instruction:
%29 = struct_element_addr %24 : $*Repro.Iterator, #Repro.Iterator.nxt // users: %73, %35, %42, %49, %31, %30
-> %35 = load [trivial] %29 : $*Optional<String> // user: %37
br bb1(%23 : $Builtin.Int64, %12 : $Builtin.RawPointer, %6 : $__ContiguousArrayStorageBase, %35 : $Optional<String>) // id: %37
In function:
// specialized _copySequenceToContiguousArray<A>(_:)
Reproduction
A reduced test
swiftc Repro.swift -O -enable-library-evolution
Repro.swift
public struct Repro: Sequence {
public struct Iterator: IteratorProtocol {
var nxt: String?
let start: String
init(_ token: String?, _ start: String) {
self.nxt = token
self.start = start
}
public mutating func next() -> String? {
guard let token = self.nxt else { return nil }
self.nxt = token
if self.nxt != nil {
self.nxt = nil
}
return token
}
}
let pos: String
public init(_ pos: String) {
self.pos = pos
}
public func makeIterator() -> Iterator {
return Iterator(nil, pos)
}
}
Stack dump
On macOS
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: /Users/hiroshi/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2025-02-18-a.xctoolchain/usr/bin/swift-frontend -frontend -c -primary-file Repro.swift -target arm64-apple-macosx15.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -color-diagnostics -enable-library-evolution -O -resource-dir /Users/hiroshi/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2025-02-18-a.xctoolchain/usr/lib/swift -no-auto-bridging-header-chaining -module-name Repro -in-process-plugin-server-path /Users/hiroshi/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2025-02-18-a.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -plugin-path /Users/hiroshi/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2025-02-18-a.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Users/hiroshi/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2025-02-18-a.xctoolchain/usr/local/lib/swift/host/plugins -o /var/folders/ww/kxcj3hm12kd92gcwr9t3y7k40000gq/T/TemporaryDirectory.NTLNHO/Repro-1.o
1. Apple Swift version 6.2-dev (LLVM 23dd6ab259a178a, Swift a4a3a41b50e111e)
2. Compiling with effective version 5.10
3. While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for Repro)
4. While running pass #3948 SILFunctionTransform "OwnershipModelEliminator" on SILFunction "@$ss30_copySequenceToContiguousArrayys0dE0Vy7ElementQzGxSTRzlF5ReproAGV_TB5".
for <<debugloc at "<compiler-generated>":0:0>>5. Found verification error when verifying before lowering ownership. Please re-run with -sil-verify-all to identify the actual pass that introduced the verification error.
6. While verifying SIL function "@$ss30_copySequenceToContiguousArrayys0dE0Vy7ElementQzGxSTRzlF5ReproAGV_TB5".
for <<debugloc at "<compiler-generated>":0:0>>Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 swift-frontend 0x0000000108bfa948 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 swift-frontend 0x0000000108bf902c llvm::sys::RunSignalHandlers() + 112
2 swift-frontend 0x0000000108bfafa0 SignalHandler(int, __siginfo*, void*) + 300
3 libsystem_platform.dylib 0x00000001954a2de4 _sigtramp + 56
4 libsystem_pthread.dylib 0x000000019546bf70 pthread_kill + 288
5 libsystem_c.dylib 0x0000000195378908 abort + 128
6 swift-frontend 0x0000000103d01fc4 swift::SILModule::print(llvm::raw_ostream&, swift::ModuleDecl*, swift::SILOptions const&, bool) const + 0
7 swift-frontend 0x0000000103d0a254 swift::SILVisitorBase<(anonymous namespace)::SILVerifier, void>::visitSILBasicBlock(swift::SILBasicBlock*) + 1312
8 swift-frontend 0x0000000103d09c34 (anonymous namespace)::SILVerifier::visitSILBasicBlock(swift::SILBasicBlock*) + 28
9 swift-frontend 0x0000000103d0839c (anonymous namespace)::SILVerifier::visitSILFunction(swift::SILFunction*) + 10844
10 swift-frontend 0x0000000103d0217c swift::SILFunction::verify(swift::CalleeCache*, bool, bool, bool) const + 224
11 swift-frontend 0x000000010373fdc4 (anonymous namespace)::OwnershipModelEliminator::run() + 268
12 swift-frontend 0x00000001037471e0 swift::SILPassManager::runPassOnFunction(unsigned int, swift::SILFunction*) + 1432
13 swift-frontend 0x0000000103748114 swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) + 1060
14 swift-frontend 0x00000001037450d8 swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) + 72
15 swift-frontend 0x0000000103745058 swift::ExecuteSILPipelineRequest::evaluate(swift::Evaluator&, swift::SILPipelineExecutionDescriptor) const + 68
16 swift-frontend 0x0000000103795c10 swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::__1::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) + 28
17 swift-frontend 0x00000001037621e4 swift::ExecuteSILPipelineRequest::OutputType swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()>(swift::ExecuteSILPipelineRequest const&, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()) + 204
18 swift-frontend 0x00000001037452b4 swift::executePassPipelinePlan(swift::SILModule*, swift::SILPassPipelinePlan const&, bool, swift::irgen::IRGenModule*) + 64
19 swift-frontend 0x0000000103777f58 swift::runSILOptimizationPasses(swift::SILModule&) + 156
20 swift-frontend 0x0000000102f217e4 swift::CompilerInstance::performSILProcessing(swift::SILModule*) + 636
21 swift-frontend 0x0000000102ccdfac performCompileStepsPostSILGen(swift::CompilerInstance&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>>, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) + 820
22 swift-frontend 0x0000000102ccd630 swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 656
23 swift-frontend 0x0000000102cd9828 withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) + 160
24 swift-frontend 0x0000000102ccf344 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 716
25 swift-frontend 0x0000000102cceb60 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2216
26 swift-frontend 0x0000000102a8904c swift::mainEntry(int, char const**) + 3100
27 dyld 0x00000001950ec274 start + 2840
On Windows
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: C:\\Users\\hiroshi\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\swift-frontend.exe -frontend -c -primary-file C:\\Users\\hiroshi\\tmp\\repro.swift -target x86_64-unknown-windows-msvc -disable-objc-interop -sdk C:\\Users\\hiroshi\\AppData\\Local\\Programs\\Swift\\Platforms\\0.0.0\\Windows.platform\\Developer\\SDKs\\Windows.sdk\\ -color-diagnostics -enable-library-evolution -O -resource-dir C:\\Users\\hiroshi\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\lib\\swift -no-auto-bridging-header-chaining -module-name repro -in-process-plugin-server-path C:\\Users\\hiroshi\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\SwiftInProcPluginServer.dll -plugin-path C:\\Users\\hiroshi\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin -plugin-path C:\\Users\\hiroshi\\AppData\\Local\\Programs\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\local\\bin -o C:\\Users\\hiroshi\\AppData\\Local\\Temp\\TemporaryDirectory.WxsE8i\\repro-1.o
1. compnerd.org Swift version 6.2-dev (LLVM 8bdbd74d77951ad, Swift 63b7f05d749d48f)
2. Compiling with effective version 5.10
3. While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for repro)
4. While running pass #3823 SILFunctionTransform "OwnershipModelEliminator" on SILFunction "@$ss30_copySequenceToContiguousArrayys0dE0Vy7ElementQzGxSTRzlF5repro5ReproV_TB5".
for <<debugloc at "<compiler-generated>":0:0>>5. Found verification error when verifying before lowering ownership. Please re-run with -sil-verify-all to identify the actual pass that introduced the verification error.
6. While verifying SIL function "@$ss30_copySequenceToContiguousArrayys0dE0Vy7ElementQzGxSTRzlF5repro5ReproV_TB5".
for <<debugloc at "<compiler-generated>":0:0>>Exception Code: 0x80000003
#0 0x00007ff68067a825 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x6dea825)
#1 0x00007fff47241ae9 (C:\WINDOWS\System32\ucrtbase.dll+0xc1ae9)
#2 0x00007fff47224c11 (C:\WINDOWS\System32\ucrtbase.dll+0xa4c11)
#3 0x00007ff67af478eb (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x16b78eb)
#4 0x00007ff67af328f8 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x16a28f8)
#5 0x00007ff67af52395 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x16c2395)
#6 0x00007ff67af56bdb (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x16c6bdb)
#7 0x00007ff67af5734f (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x16c734f)
#8 0x00007ff67af47a1c (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x16b7a1c)
#9 0x00007ff67aa5ffb3 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x11cffb3)
#10 0x00007ff67a75312d (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xec312d)
#11 0x00007ff67a752337 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xec2337)
#12 0x00007ff67a74b867 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xebb867)
#13 0x00007ff67a74bb46 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xebbb46)
#14 0x00007ff67a74b557 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xebb557)
#15 0x00007ff67a7a202d (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xf1202d)
#16 0x00007ff67a74bcdf (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xebbcdf)
#17 0x00007ff67a734eb5 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xea4eb5)
#18 0x00007ff67a134565 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x8a4565)
#19 0x00007ff679e9d87d (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x60d87d)
#20 0x00007ff679e9e35f (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x60e35f)
#21 0x00007ff679e9d0c4 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x60d0c4)
#22 0x00007ff679e9d57b (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x60d57b)
#23 0x00007ff679e9f444 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x60f444)
#24 0x00007ff679cee310 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x45e310)
#25 0x00007ff679ceddd7 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x45ddd7)
#26 0x00007ff6806d9914 (C:\Users\hiroshi\AppData\Local\Programs\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x6e49914)
#27 0x00007fff48f1e8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
#28 0x00007fff4975bf2c (C:\WINDOWS\SYSTEM32\ntdll.dll+0xbbf2c)
Expected behavior
No compiler crash
Environment
macOS and Windows
Additional information
No response